PR preprocessor/8497
authorneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 8 Nov 2002 22:36:22 +0000 (22:36 +0000)
committerneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 8 Nov 2002 22:36:22 +0000 (22:36 +0000)
PR preprocessor/8501
* cpptrad.c (scan_out_logical_line): A '#' from a macro doesn't
start a directive.  In assembler, #NUM is not a line directive.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@58938 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/cpptrad.c

index b473c78..5f5fee4 100644 (file)
@@ -1,5 +1,12 @@
 2002-11-08  Neil Booth  <neil@daikokuya.co.uk>
 
+       PR preprocessor/8497
+       PR preprocessor/8501
+       * cpptrad.c (scan_out_logical_line): A '#' from a macro doesn't
+       start a directive.  In assembler, #NUM is not a line directive.
+
+2002-11-08  Neil Booth  <neil@daikokuya.co.uk>
+
        * cppmain.c (cpp_preprocess_file): Loop to pop any -included
        buffers.
 
index 51b0bfc..902ae49 100644 (file)
@@ -682,7 +682,10 @@ scan_out_logical_line (pfile, macro)
          break;
 
        case '#':
-         if (out - 1 == pfile->out.base && !pfile->state.in_directive)
+         if (out - 1 == pfile->out.base
+             /* A '#' from a macro doesn't start a directive.  */
+             && !pfile->context->prev
+             && !pfile->state.in_directive)
            {
              /* A directive.  With the way _cpp_handle_directive
                 currently works, we only want to call it if either we
@@ -705,7 +708,8 @@ scan_out_logical_line (pfile, macro)
                {
                  bool do_it = false;
 
-                 if (is_numstart (*cur))
+                 if (is_numstart (*cur)
+                     && CPP_OPTION (pfile, lang) != CLK_ASM)
                    do_it = true;
                  else if (is_idstart (*cur))
                    /* Check whether we know this directive, but don't