summaryrefslogtreecommitdiffstats
path: root/gcc/cppexp.c
diff options
context:
space:
mode:
authorneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>2002-07-09 22:21:37 +0000
committerneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>2002-07-09 22:21:37 +0000
commitecedd82dcfc198d99b53f269a1213f8f214115bf (patch)
treee390f035173a9fd06a813df8aaf84b4cafa2f92f /gcc/cppexp.c
parentdca8af3e56a53cdd2c6952d3d86d62b5f615e13e (diff)
downloadppe42-gcc-ecedd82dcfc198d99b53f269a1213f8f214115bf.tar.gz
ppe42-gcc-ecedd82dcfc198d99b53f269a1213f8f214115bf.zip
* cpperror.c (cpp_error): Default to directive_line within
directives here. * cppexp.c (cpp_interpret_integer): Only use traditional number semantics in directives. * cpplib.c (prepare_directive_trad): Don't reset pfile->line. (do_include_common): Similarly. * cpptrad.c (scan_out_logical_line): Implement accurate quoting of <> in #include. * doc/cpp.texi: Update. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55347 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cppexp.c')
-rw-r--r--gcc/cppexp.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/cppexp.c b/gcc/cppexp.c
index b3a7ce60966..44ee26b09cd 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)
OpenPOWER on IntegriCloud