OSDN Git Service

* c-decl.c (define_label): Call warning_with_file_and_line and
authorghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 29 Aug 2000 17:34:26 +0000 (17:34 +0000)
committerghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 29 Aug 2000 17:34:26 +0000 (17:34 +0000)
error_with_file_and_line instead of plain warning or error.

* c-parse.in (label): Use save_filename/save_lineno to ensure
correct values for calls to define_label.

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

gcc/ChangeLog
gcc/c-decl.c
gcc/c-parse.in

index b054ac6..add224b 100644 (file)
@@ -1,3 +1,11 @@
+2000-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * c-decl.c (define_label): Call warning_with_file_and_line and
+       error_with_file_and_line instead of plain warning or error.
+
+       * c-parse.in (label): Use save_filename/save_lineno to ensure
+       correct values for calls to define_label.
+
 2000-08-29  Mark Mitchell  <mark@codesourcery.com>
 
        * calls.c (expand_call): Don't create a VAR_DECL just to throw it
index 5404a4f..545ac88 100644 (file)
@@ -2747,12 +2747,14 @@ define_label (filename, line, name)
     }
 
   if (warn_traditional && !in_system_header && lookup_name (name))
-    warning ("traditional C lacks a separate namespace for labels, identifier `%s' conflicts",
-            IDENTIFIER_POINTER (name));
+    warning_with_file_and_line (filename, line,
+                               "traditional C lacks a separate namespace for labels, identifier `%s' conflicts",
+                               IDENTIFIER_POINTER (name));
 
   if (DECL_INITIAL (decl) != 0)
     {
-      error ("duplicate label `%s'", IDENTIFIER_POINTER (name));
+      error_with_file_and_line (filename, line, "duplicate label `%s'",
+                               IDENTIFIER_POINTER (name));
       return 0;
     }
   else
index 469cb5f..588faeb 100644 (file)
@@ -1951,14 +1951,14 @@ label:    CASE expr_no_commas ':'
                  genrtl_case_label(CASE_LOW(case_label_tree), CASE_HIGH(case_label_tree));
                  position_after_white_space ();
                }
-       | identifier ':' maybe_attribute
-               { tree label = define_label (input_filename, lineno, $1);
+       | identifier ':' save_filename save_lineno maybe_attribute
+               { tree label = define_label ($3, $4, $1);
                  stmt_count++;
                  emit_nop ();
                  if (label)
                    {
                      expand_label (label);
-                     decl_attributes (label, $3, NULL_TREE);
+                     decl_attributes (label, $5, NULL_TREE);
                    }
                  position_after_white_space (); }
        ;