diff options
author | Neil Booth <neil@daikokuya.co.uk> | 2002-06-25 06:00:30 +0000 |
---|---|---|
committer | Neil Booth <neil@gcc.gnu.org> | 2002-06-25 06:00:30 +0000 |
commit | 0c6db54457ac526c5ec8b8ca5b6b8a5104eccce7 (patch) | |
tree | 72f86a445f4678c5b6afc75667e751ee6dcaf2a2 /gcc/cpptrad.c | |
parent | d74bba04e8561896d2ba0ec5170216a38e1fd352 (diff) | |
download | gcc-0c6db54457ac526c5ec8b8ca5b6b8a5104eccce7.zip gcc-0c6db54457ac526c5ec8b8ca5b6b8a5104eccce7.tar.gz gcc-0c6db54457ac526c5ec8b8ca5b6b8a5104eccce7.tar.bz2 |
cpplib.c (do_include_common): Revert to correct line number if -traditional.
* cpplib.c (do_include_common): Revert to correct line number
if -traditional.
* cpptrad.c (scan_out_logical_line): Treat null directive as
white space. Invlidate MI optimization for non-whitespace
text outside a directive.
testsuite:
* gcc.dg/cpp/mi7.c, gcc.dg/cpp/mi7a.h, gcc.dg/cpp/mi7b.h,
gcc.dg/cpp/trad/builtins.c, gcc.dg/cpp/trad/builtins.h,
gcc.dg/cpp/trad/cmdlne-C.c, gcc.dg/cpp/trad/cmdlne-C2.c,
gcc.dg/cpp/trad/maccom1.c, gcc.dg/cpp/trad/maccom2.c,
gcc.dg/cpp/trad/maccom3.c, gcc.dg/cpp/trad/maccom4.c,
gcc.dg/cpp/trad/maccom6.c, gcc.dg/cpp/trad/mi1.c,
gcc.dg/cpp/trad/mi1c.h, gcc.dg/cpp/trad/mi1nd.h,
gcc.dg/cpp/trad/mi1ndp.h, gcc.dg/cpp/trad/mi1x.h,
gcc.dg/cpp/trad/mi2.c, gcc.dg/cpp/trad/mi2a.h,
gcc.dg/cpp/trad/mi2b.h, gcc.dg/cpp/trad/mi2c.h
gcc.dg/cpp/trad/mi3.c, gcc.dg/cpp/trad/mi3.def,
gcc.dg/cpp/trad/mi3.h, gcc.dg/cpp/trad/mi4.c,
gcc.dg/cpp/trad/mi5.c, gcc.dg/cpp/trad/mi6.c,
gcc.dg/cpp/trad/mi6a.h, gcc.dg/cpp/trad/mi6b.h,
gcc.dg/cpp/trad/mi6c.h, gcc.dg/cpp/trad/mi6d.h,
gcc.dg/cpp/trad/mi6e.h, gcc.dg/cpp/trad/mi7.c,
gcc.dg/cpp/trad/mi7a.h, gcc.dg/cpp/trad/mi7b.h: New tests.
From-SVN: r54978
Diffstat (limited to 'gcc/cpptrad.c')
-rw-r--r-- | gcc/cpptrad.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/gcc/cpptrad.c b/gcc/cpptrad.c index 7ae8819..9bcb915 100644 --- a/gcc/cpptrad.c +++ b/gcc/cpptrad.c @@ -698,8 +698,12 @@ scan_out_logical_line (pfile, macro) out = pfile->out.cur; if (is_vspace (*cur)) - /* Null directive ignored. */ - out = pfile->out.base; + { + /* Null directive. Ignore it and don't invalidate + the MI optimization. */ + out = pfile->out.base; + continue; + } else { bool do_it = false; @@ -733,6 +737,10 @@ scan_out_logical_line (pfile, macro) break; } + /* Non-whitespace disables MI optimization. */ + if (!pfile->state.in_directive) + pfile->mi_valid = false; + if (lex_state == ls_none) continue; |