diff options
Diffstat (limited to 'gcc/cppexp.c')
-rw-r--r-- | gcc/cppexp.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/cppexp.c b/gcc/cppexp.c index b3a7ce6..44ee26b 100644 --- a/gcc/cppexp.c +++ b/gcc/cppexp.c @@ -377,9 +377,11 @@ cpp_interpret_integer (pfile, token, type) "integer constant is too large for its type"); /* If too big to be signed, consider it unsigned. Only warn for decimal numbers. Traditional numbers were always signed (but - we still honour an explicit U suffix). */ + we still honour an explicit U suffix); but we only have + traditional semantics in directives. */ else if (!result.unsignedp - && !CPP_OPTION (pfile, traditional) + && !(CPP_OPTION (pfile, traditional) + && pfile->state.in_directive) && !num_positive (result, precision)) { if (base == 10) |