diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/DefaultProblemHandler.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/DefaultProblemHandler.java index 0c8065cddc4..c0bf2b695a9 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/DefaultProblemHandler.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/DefaultProblemHandler.java @@ -33,7 +33,7 @@ public class DefaultProblemHandler case IProblem.PREPROCESSOR_POUND_ERROR: case IProblem.PREPROCESSOR_UNBALANCE_CONDITION: case IProblem.PREPROCESSOR_INVALID_MACRO_DEFN: - case IProblem.PREPROCESSOR_MACRO_USAGE_ERROR: +// case IProblem.PREPROCESSOR_MACRO_USAGE_ERROR: case IProblem.PREPROCESSOR_MACRO_PASTING_ERROR: case IProblem.PREPROCESSOR_CONDITIONAL_EVAL_ERROR: case IProblem.SCANNER_UNEXPECTED_EOF: diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/expression/ASTExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/expression/ASTExpression.java index 7c27c4e23a0..26990f50d59 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/expression/ASTExpression.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/expression/ASTExpression.java @@ -154,7 +154,12 @@ public class ASTExpression implements IASTExpression { return( ( getLHSExpression().evaluateExpression() != 0 ) && ( getRHSExpression().evaluateExpression() != 0 ) ) ? 1 : 0 ; // logical or if( getExpressionKind() == IASTExpression.Kind.LOGICALOREXPRESSION ) - return( ( getLHSExpression().evaluateExpression() != 0 ) || ( getRHSExpression().evaluateExpression() != 0 ) ) ? 1 : 0 ; + return( ( getLHSExpression().evaluateExpression() != 0 ) || ( getRHSExpression().evaluateExpression() != 0 ) ) ? 1 : 0 ; + + if( getExpressionKind() == IASTExpression.Kind.CONDITIONALEXPRESSION ) + { + return ( getLHSExpression().evaluateExpression() != 0 ) ? getRHSExpression().evaluateExpression() : getThirdExpression().evaluateExpression(); + } throw new ASTExpressionEvaluationException(); }