Fixed #4079 (#if condition does not evaluate numbers with sign)
This commit is contained in:
parent
5d1b4e6dbb
commit
7d94230329
|
@ -1450,6 +1450,7 @@ void Preprocessor::simplifyCondition(const std::map<std::string, std::string> &c
|
|||
}
|
||||
|
||||
// simplify calculations..
|
||||
tokenizer.concatenateNegativeNumber();
|
||||
bool modified = true;
|
||||
while (modified) {
|
||||
modified = false;
|
||||
|
|
|
@ -222,6 +222,7 @@ private:
|
|||
TEST_CASE(define_if1);
|
||||
TEST_CASE(define_if2);
|
||||
TEST_CASE(define_if3);
|
||||
TEST_CASE(define_if4); // #4079 - #define X +123
|
||||
TEST_CASE(define_ifdef);
|
||||
TEST_CASE(define_ifndef1);
|
||||
TEST_CASE(define_ifndef2);
|
||||
|
@ -2695,6 +2696,15 @@ private:
|
|||
ASSERT_EQUALS("\n\nFOO\n\n", preprocessor.getcode(filedata,"",""));
|
||||
}
|
||||
|
||||
void define_if4() {
|
||||
const char filedata[] = "#define X +123\n"
|
||||
"#if X==123\n"
|
||||
"FOO\n"
|
||||
"#endif";
|
||||
Preprocessor preprocessor(NULL, this);
|
||||
ASSERT_EQUALS("\n\nFOO\n\n", preprocessor.getcode(filedata,"",""));
|
||||
}
|
||||
|
||||
void define_ifdef() {
|
||||
{
|
||||
const char filedata[] = "#define ABC\n"
|
||||
|
|
Loading…
Reference in New Issue