aboutsummaryrefslogtreecommitdiff
path: root/gcc/cppexp.c
diff options
context:
space:
mode:
authorNeil Booth <neil@daikokuya.co.uk>2002-07-09 22:21:37 +0000
committerNeil Booth <neil@gcc.gnu.org>2002-07-09 22:21:37 +0000
commitcd98faa13814ce3712fc1c1be9690180d89810e5 (patch)
treee390f035173a9fd06a813df8aaf84b4cafa2f92f /gcc/cppexp.c
parent2ad65b0e91312a9f2fadd4abd9eb9d98b085920c (diff)
downloadgcc-cd98faa13814ce3712fc1c1be9690180d89810e5.zip
gcc-cd98faa13814ce3712fc1c1be9690180d89810e5.tar.gz
gcc-cd98faa13814ce3712fc1c1be9690180d89810e5.tar.bz2
cpperror.c (cpp_error): Default to directive_line within directives here.
* 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. From-SVN: r55347
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 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)