Merge pull request #2521 from kugelfuhr/kugelfuhr/fix-2520

Fix wrong evaluation of ternary expressions in the preprocessor
This commit is contained in:
Bob Andrews 2024-09-15 19:24:22 +02:00 committed by GitHub
commit 16258d812b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 5 additions and 1 deletions

View File

@ -726,7 +726,7 @@ static void PPhieQuest (PPExpr* Expr)
PPhieQuest (&Expr3); PPhieQuest (&Expr3);
/* Set the result */ /* Set the result */
Expr->IVal = Expr->IVal ? Expr2.IVal != 0 : Expr3.IVal != 0; Expr->IVal = Expr->IVal ? Expr2.IVal : Expr3.IVal;
/* Restore evaluation as before */ /* Restore evaluation as before */
PPEvaluationEnabled = PPEvaluationEnabledPrev; PPEvaluationEnabled = PPEvaluationEnabledPrev;

4
test/val/bug2520.c Normal file
View File

@ -0,0 +1,4 @@
#if (1 ? 2 : 0) != 2
#error
#endif
int main() { return 0; }