]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
cpperror.c (print_file_and_line): If line is (unsigned int)-1, print just the filename.
authorZack Weinberg <zack@wolery.cumb.org>
Tue, 29 Aug 2000 18:37:37 +0000 (18:37 +0000)
committerZack Weinberg <zack@gcc.gnu.org>
Tue, 29 Aug 2000 18:37:37 +0000 (18:37 +0000)
* cpperror.c (print_file_and_line): If line is (unsigned int)-1,
print just the filename.
* cpplex.c (_cpp_run_directive): Add additional argument, the
name to give the synthetic buffer.  This defaults to
translated "<command line>".
* cpplib.c (cpp_define, cpp_undef, cpp_assert, cpp_unassert):
Adjust to match.
(_cpp_define_builtin): New function.
* cppinit.c (initialize_builtins): Use _cpp_define_builtin.
* cpphash.h: Update prototypes.

* tradcpp.c (main): Process -D and -U simultaneously, in the
order they appeared on the command line.

From-SVN: r36043

gcc/ChangeLog
gcc/cpperror.c
gcc/cpphash.h
gcc/cppinit.c
gcc/cpplex.c
gcc/cpplib.c
gcc/tradcpp.c

index add224b1c282e688c3f050580526f31a1a9c6f7f..6e84eb6df51fcdf365dcb27228c7712b5d3429b5 100644 (file)
@@ -1,3 +1,19 @@
+2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
+
+       * cpperror.c (print_file_and_line): If line is (unsigned int)-1,
+       print just the filename.
+       * cpplex.c (_cpp_run_directive): Add additional argument, the
+       name to give the synthetic buffer.  This defaults to
+       translated "<command line>".
+       * cpplib.c (cpp_define, cpp_undef, cpp_assert, cpp_unassert):
+       Adjust to match.
+       (_cpp_define_builtin): New function.
+       * cppinit.c (initialize_builtins): Use _cpp_define_builtin.
+       * cpphash.h: Update prototypes.
+
+       * tradcpp.c (main): Process -D and -U simultaneously, in the
+       order they appeared on the command line.
+
 2000-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
        * c-decl.c (define_label): Call warning_with_file_and_line and
index edf199273fcd0160041d2c8ae08f07b17103b714..a6c7b2dbf3e61985732ca613a743233d55f06a11 100644 (file)
@@ -91,17 +91,15 @@ print_file_and_line (filename, line, column)
      const char *filename;
      unsigned int line, column;
 {
-  if (line == 0)
-    fputs (_("<command line>: "), stderr);
+  if (filename == 0 || *filename == '\0')
+    filename = "<stdin>";
+
+  if (line == (unsigned int)-1)
+    fprintf (stderr, "%s: ", filename);
+  else if (column > 0)
+    fprintf (stderr, "%s:%u:%u: ", filename, line, column);
   else
-    {
-      if (filename == 0 || *filename == '\0')
-       filename = "<stdin>";
-      if (column > 0)
-       fprintf (stderr, "%s:%u:%u: ", filename, line, column);
-      else
-       fprintf (stderr, "%s:%u: ", filename, line);
-    }
+    fprintf (stderr, "%s:%u: ", filename, line);
 }
 
 /* Set up for an error message: print the file and line, bump the error
index 23e1d813b0bcaed340040c00058c14e2c32a75e1..45abb6919751f1faa73e80bd05a1d71d7c07ba69 100644 (file)
@@ -267,7 +267,8 @@ extern int _cpp_equiv_tokens                PARAMS ((const cpp_token *,
                                                 const cpp_token *));
 extern void _cpp_run_directive         PARAMS ((cpp_reader *,
                                                 const struct directive *,
-                                                const char *, size_t));
+                                                const char *, size_t,
+                                                const char *));
 extern unsigned int _cpp_get_line      PARAMS ((cpp_reader *,
                                                 unsigned int *));
 extern const cpp_token *_cpp_get_token PARAMS ((cpp_reader *));
@@ -284,6 +285,8 @@ extern cpp_hashnode *_cpp_parse_assertion PARAMS ((cpp_reader *,
                                                    struct answer **));
 extern struct answer **_cpp_find_answer        PARAMS ((cpp_hashnode *,
                                                 const cpp_toklist *));
+extern void _cpp_define_builtin                PARAMS ((cpp_reader *, const char *));
+
 extern void _cpp_init_stacks   PARAMS ((cpp_reader *));
 extern void _cpp_cleanup_stacks        PARAMS ((cpp_reader *));
 extern void _cpp_init_internal_pragmas PARAMS ((cpp_reader *));
index f1ed54fd85f166577c988def1c1a7f777515c053..fbccfc358ed24bff5cccbb325705e448d3767154 100644 (file)
@@ -610,9 +610,9 @@ initialize_builtins (pfile)
 
          if (b->flags & VERS)
            {
-             /* Allocate enough space for 'name="value"\0'.  */
-             str = xmalloc (b->len + strlen (version_string) + 4);
-             sprintf (str, "%s=\"%s\"", b->name, version_string);
+             /* Allocate enough space for 'name "value"\n\0'.  */
+             str = alloca (b->len + strlen (version_string) + 5);
+             sprintf (str, "%s \"%s\"\n", b->name, version_string);
            }
          else
            {
@@ -621,13 +621,12 @@ initialize_builtins (pfile)
              else
                val = b->value;
 
-             /* Allocate enough space for "name=value\0".  */
-             str = xmalloc (b->len + strlen (val) + 2);
-             sprintf(str, "%s=%s", b->name, val);
+             /* Allocate enough space for "name value\n\0".  */
+             str = alloca (b->len + strlen (val) + 3);
+             sprintf(str, "%s %s\n", b->name, val);
            }
 
-         cpp_define (pfile, str);
-         free (str);
+         _cpp_define_builtin (pfile, str);
        }
       else
        {
index ba53e5cd6161c0d30503addedaeac62765656391..37d1de8c4408e7e4e01a610b44498a2addc692f3 100644 (file)
@@ -3565,16 +3565,23 @@ _cpp_skip_rest_of_line (pfile)
 /* Directive handler wrapper used by the command line option
    processor.  */
 void
-_cpp_run_directive (pfile, dir, buf, count)
+_cpp_run_directive (pfile, dir, buf, count, name)
      cpp_reader *pfile;
      const struct directive *dir;
      const char *buf;
      size_t count;
+     const char *name;
 {
   if (cpp_push_buffer (pfile, (const U_CHAR *)buf, count) != NULL)
     {
       unsigned int prev_lvl = 0;
 
+      if (name)
+       CPP_BUFFER (pfile)->nominal_fname = name;
+      else
+       CPP_BUFFER (pfile)->nominal_fname = _("<command line>");
+      CPP_BUFFER (pfile)->lineno = (unsigned int)-1;
+
       /* Scan the line now, else prevent_macro_expansion won't work.  */
       lex_next (pfile, 1);
       if (! (dir->flags & EXPAND))
index 2cc956dea4265e0c2b490f2ecb5b5257c839105b..3273dce4544fd6e8240b5281abd8bd35a02b3c47 100644 (file)
@@ -1410,7 +1410,20 @@ cpp_define (pfile, str)
       strcpy (&buf[count-4], " 1\n");
     }
 
-  _cpp_run_directive (pfile, &dtable[T_DEFINE], buf, count - 1);
+  _cpp_run_directive (pfile, &dtable[T_DEFINE], buf, count - 1, 0);
+}
+
+/* Slight variant of the above for use by initialize_builtins, which (a)
+   knows how to set up the buffer itself, (b) needs a different "filename"
+   tag.  */
+void
+_cpp_define_builtin (pfile, str)
+     cpp_reader *pfile;
+     const char *str;
+{
+  _cpp_run_directive (pfile, &dtable[T_DEFINE],
+                     str, strlen (str),
+                     _("<builtin>"));
 }
 
 /* Process MACRO as if it appeared as the body of an #undef.  */
@@ -1419,7 +1432,7 @@ cpp_undef (pfile, macro)
      cpp_reader *pfile;
      const char *macro;
 {
-  _cpp_run_directive (pfile, &dtable[T_UNDEF], macro, strlen (macro));
+  _cpp_run_directive (pfile, &dtable[T_UNDEF], macro, strlen (macro), 0);
 }
 
 /* Process the string STR as if it appeared as the body of a #assert. */
@@ -1428,7 +1441,7 @@ cpp_assert (pfile, str)
      cpp_reader *pfile;
      const char *str;
 {
-  _cpp_run_directive (pfile, &dtable[T_ASSERT], str, strlen (str));
+  _cpp_run_directive (pfile, &dtable[T_ASSERT], str, strlen (str), 0);
 }
 
 /* Process STR as if it appeared as the body of an #unassert. */
@@ -1437,7 +1450,7 @@ cpp_unassert (pfile, str)
      cpp_reader *pfile;
      const char *str;
 {
-  _cpp_run_directive (pfile, &dtable[T_UNASSERT], str, strlen (str));
+  _cpp_run_directive (pfile, &dtable[T_UNASSERT], str, strlen (str), 0);
 }  
 
 /* Determine whether the identifier ID, of length LEN, is a defined macro.  */
index 5e88c02298932ea8b55946c384e04126c9a82ca1..125e2cbe602695de7228526ba1bc119c95e35b08 100644 (file)
@@ -711,14 +711,11 @@ main (argc, argv)
      and option processing.  */
   initialize_builtins ();
 
-  /* Do defines specified with -D.  */
+  /* Do defines specified with -D and undefines specified with -U.  */
   for (i = 1; i < argc; i++)
     if (pend_defs[i])
       make_definition ((U_CHAR *)pend_defs[i]);
-
-  /* Do undefines specified with -U.  */
-  for (i = 1; i < argc; i++)
-    if (pend_undefs[i])
+    else if (pend_undefs[i])
       make_undef ((U_CHAR *)pend_undefs[i]);
 
   /* Unless -fnostdinc,