From d731fb1079464d341a5933f9917d54f96f6f1e76 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Tue, 16 Apr 2013 00:52:22 -0400 Subject: [PATCH] Let "#if ((0) + (1) < 2)" understand that '+' isn't a unary operation. --- mojoshader_preprocessor.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mojoshader_preprocessor.c b/mojoshader_preprocessor.c index 4ea172d1..5137bd4a 100644 --- a/mojoshader_preprocessor.c +++ b/mojoshader_preprocessor.c @@ -1691,12 +1691,16 @@ static int reduce_pp_expression(Context *ctx) isleft = 0; else if (token == ((Token) '-')) { - if ((isleft = (previous_token == TOKEN_INT_LITERAL)) == 0) + isleft = ((previous_token == TOKEN_INT_LITERAL) || + (previous_token == ((Token) ')'))); + if (!isleft) token = TOKEN_PP_UNARY_MINUS; } // else if else if (token == ((Token) '+')) { - if ((isleft = (previous_token == TOKEN_INT_LITERAL)) == 0) + isleft = ((previous_token == TOKEN_INT_LITERAL) || + (previous_token == ((Token) ')'))); + if (!isleft) token = TOKEN_PP_UNARY_PLUS; } // else if