diff options
Diffstat (limited to 'gcc/c-parse.in')
-rw-r--r-- | gcc/c-parse.in | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/gcc/c-parse.in b/gcc/c-parse.in index 5132b3f1d6b..889425e26c2 100644 --- a/gcc/c-parse.in +++ b/gcc/c-parse.in @@ -261,13 +261,17 @@ static tree declspec_stack; /* For __extension__, save/restore the warning flags which are controlled by __extension__. */ -#define SAVE_WARN_FLAGS() \ - size_int (pedantic | (warn_pointer_arith << 1)) -#define RESTORE_WARN_FLAGS(tval) \ - do { \ - int val = tree_low_cst (tval, 0); \ - pedantic = val & 1; \ - warn_pointer_arith = (val >> 1) & 1; \ +#define SAVE_WARN_FLAGS() \ + size_int (pedantic \ + | (warn_pointer_arith << 1) \ + | (warn_traditional << 2)) + +#define RESTORE_WARN_FLAGS(tval) \ + do { \ + int val = tree_low_cst (tval, 0); \ + pedantic = val & 1; \ + warn_pointer_arith = (val >> 1) & 1; \ + warn_traditional = (val >> 2) & 1; \ } while (0) ifobjc @@ -2620,7 +2624,8 @@ extension: EXTENSION { $$ = SAVE_WARN_FLAGS(); pedantic = 0; - warn_pointer_arith = 0; } + warn_pointer_arith = 0; + warn_traditional = 0; } ; ifobjc |