2003-05-01 H.J. Lu <hjl@gnu.org>
authorH.J. Lu <hjl.tools@gmail.com>
Fri, 2 May 2003 02:41:45 +0000 (02:41 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Fri, 2 May 2003 02:41:45 +0000 (02:41 +0000)
* config/tc-ia64.c (ia64_check_label): New.
* config/tc-ia64.h (tc_check_label): New.

* read.c (read_a_source_file): Call tc_check_label after
creating a user-defined label if defined.

gas/ChangeLog
gas/config/tc-ia64.c
gas/config/tc-ia64.h
gas/read.c

index faf60d71ad7b15e16e763a580e76a5ff21c55d0c..c868802c9c23a4eef63312eb3e823f3c65ba6ea4 100644 (file)
@@ -1,3 +1,11 @@
+2003-05-01  H.J. Lu <hjl@gnu.org>
+
+       * config/tc-ia64.c (ia64_check_label): New.
+       * config/tc-ia64.h (tc_check_label): New.
+
+       * read.c (read_a_source_file): Call tc_check_label after
+       creating a user-defined label if defined.
+
 2003-05-02  Alan Modra  <amodra@bigpond.net.au>
 
        * config/tc-ppc.c (md_show_usage): Mention -a32, -a64, -l, -le, -b,
index 7b582aaaab98b065b16a5cd35d9b0cfc0f980783..7a8d5f52146c9034dddc9dff3046ef7b331dc963 100644 (file)
@@ -10721,3 +10721,14 @@ ia64_elf_section_change_hook  (void)
 {
   dot_byteorder (-1);
 }
+
+/* Check if a label should be made global.  */
+void
+ia64_check_label (symbolS *label)
+{
+  if (*input_line_pointer == ':')
+    {
+      S_SET_EXTERNAL (label);
+      input_line_pointer++;
+    }
+}
index e0c8171f35a198feac2970f9a2df4ba0e7cd3c1a..b79cfcc899aef691ae494c41a6f97bba9f9dc233 100644 (file)
@@ -105,6 +105,7 @@ extern void ia64_md_do_align PARAMS ((int, const char *, int, int));
 extern void ia64_handle_align PARAMS ((fragS *f));
 extern void ia64_after_parse_args PARAMS ((void));
 extern void ia64_dwarf2_emit_offset PARAMS ((symbolS *, unsigned int));
+extern void ia64_check_label PARAMS ((symbolS *));
 
 #define md_end()                               ia64_end_of_source ()
 #define md_start_line_hook()           ia64_start_line ()
@@ -137,6 +138,7 @@ extern void ia64_dwarf2_emit_offset PARAMS ((symbolS *, unsigned int));
 #define md_elf_section_type(str,len)   ia64_elf_section_type (str, len)
 #define md_after_parse_args()          ia64_after_parse_args ()
 #define TC_DWARF2_EMIT_OFFSET          ia64_dwarf2_emit_offset
+#define tc_check_label(l)              ia64_check_label (l)
 
 #define MAX_MEM_FOR_RS_ALIGN_CODE  (15 + 16)
 
index 90ef3674accb6335081ee334791c621707aa6222..3c4c244280a95edd2a3758d7d63b268cc329c2e7 100644 (file)
@@ -710,6 +710,9 @@ read_a_source_file (name)
                  line_label = colon (s);       /* User-defined label.  */
                  /* Put ':' back for error messages' sake.  */
                  *input_line_pointer++ = ':';
+#ifdef tc_check_label
+                 tc_check_label (line_label);
+#endif
                  /* Input_line_pointer->after ':'.  */
                  SKIP_WHITESPACE ();
                }