[BUG] Uncaught exception /usr/include/boost/multiprecision/cpp_int.hpp(1781) Unexpected character encountered in input.
- Dominant language
- C++
- Stars
- 25.7k
- Forks
- 6.2k
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 21
Description
## Description
Error:
```
Uncaught exception:
/usr/include/boost/multiprecision/cpp_int.hpp(1781): Throw in function void boost::multiprecision::backends::cpp_int_backend::do_assign_string(const char*, const false_&) [with unsigned int MinBits = 0; unsigned int MaxBits = 0; boost::multiprecision::cpp_integer_type SignType = boost::multiprecision::signed_magnitude; boost::multiprecision::cpp_int_check_type Checked = boost::multiprecision::unchecked; Allocator = std::allocator; mpl_::false_ = mpl_::bool_]
Dynamic exception type: boost::wrapexcept
std::exception::what: Unexpected character encountered in input.
```
## Environment
- Compiler version: Version: 0.8.28-develop.2025.1.19+commit.7893614a.mod.Linux.g++
- Compilation pipeline (legacy, IR, EOF):
- Target EVM version (as per compiler settings):
- Framework/IDE (e.g. Foundry, Hardhat, Remix):
- EVM execution environment / backend / blockchain client:
- Operating system: Ubuntu 22.04
## Steps to Reproduce
poc.sol (fuzzer-generated):
```solidity
pragma experimental SMTChecker;
contract c {
struct S {
uint8 a;
address b;
uint[2] c;
uint8[] d;
}
function f(S memory _s) public {
assert(1 == 4);
}
}
```
To reproduce:
`solc --bin -o poc poc.sol`
Contributor guide
Research direction
Start by running `solc --bin -o poc poc.sol` on the fuzzer-generated `poc.sol` example, focusing on the `pragma experimental SMTChecker` path and the Boost `cpp_int` exception. Trace where the uncaught exception is produced; done means this input no longer triggers the reported unexpected-character failure.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, solidity
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100