aboutsummaryrefslogtreecommitdiff
path: root/gcc/cpptrad.c
diff options
context:
space:
mode:
authorNeil Booth <neil@daikokuya.co.uk>2002-06-25 06:00:30 +0000
committerNeil Booth <neil@gcc.gnu.org>2002-06-25 06:00:30 +0000
commit0c6db54457ac526c5ec8b8ca5b6b8a5104eccce7 (patch)
tree72f86a445f4678c5b6afc75667e751ee6dcaf2a2 /gcc/cpptrad.c
parentd74bba04e8561896d2ba0ec5170216a38e1fd352 (diff)
downloadgcc-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.c12
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;