diff --git a/lib/exprengine.cpp b/lib/exprengine.cpp index 49ea76b4a..21c6bd9a9 100644 --- a/lib/exprengine.cpp +++ b/lib/exprengine.cpp @@ -1506,7 +1506,7 @@ static ExprEngine::ValuePtr getValueRangeFromValueType(const ValueType *valueTyp value = getValueRangeFromValueType(&vt, data); } else return ExprEngine::ValuePtr(); - auto bufferSize = std::make_shared(data.getNewSymbolName(), 0, ~0U); + auto bufferSize = std::make_shared(data.getNewSymbolName(), 0, ExprEngine::ArrayValue::MAXSIZE); return std::make_shared(data.getNewSymbolName(), bufferSize, value, false, false, false); } return getValueRangeFromValueType(data.getNewSymbolName(), valueType, *data.settings); diff --git a/lib/exprengine.h b/lib/exprengine.h index 46966d610..889140fd8 100644 --- a/lib/exprengine.h +++ b/lib/exprengine.h @@ -194,7 +194,7 @@ namespace ExprEngine { // Array or pointer class ArrayValue: public Value { public: - const int MAXSIZE = 0x100000; + enum { MAXSIZE = 0x7fffffff }; ArrayValue(const std::string &name, ValuePtr size, ValuePtr value, bool pointer, bool nullPointer, bool uninitPointer); ArrayValue(DataBase *data, const Variable *var); diff --git a/test/testexprengine.cpp b/test/testexprengine.cpp index f403eae35..d8965167a 100644 --- a/test/testexprengine.cpp +++ b/test/testexprengine.cpp @@ -328,13 +328,13 @@ private: Settings settings; LOAD_LIB_2(settings.library, "std.cfg"); - ASSERT_EQUALS("1:26: $3=0:ffffffff\n" + ASSERT_EQUALS("1:26: $3=0:2147483647\n" "1:26: $2=-128:127\n" "1:27: 0:{ s=($4,[$3],[:]=$2)}\n", trackExecution("void foo() { std::string s; }", &settings)); - ASSERT_EQUALS("1:52: $3=0:ffffffff\n" + ASSERT_EQUALS("1:52: $3=0:2147483647\n" "1:52: $2=-128:127\n" "1:66: 0:{ s=($4,[$3],[:]=$2)}\n", trackExecution("std::string getName(int); void foo() { std::string s = getName(1); }", &settings));