]> gcc.gnu.org Git - gcc.git/commitdiff
Added front-end taggint to object files.
authorMike Stump <mrs@gcc.gnu.org>
Thu, 25 Mar 1993 08:51:26 +0000 (08:51 +0000)
committerMike Stump <mrs@gcc.gnu.org>
Thu, 25 Mar 1993 08:51:26 +0000 (08:51 +0000)
From-SVN: r3874

gcc/c-lang.c
gcc/defaults.h
gcc/objc/objc-act.c
gcc/toplev.c
gcc/tree.h

index c62f8d2e3352991f34d1d4c123a60d1dacc2bc86..fe4acab9f838842ff980da2c768bbe9b61069e35 100644 (file)
@@ -47,6 +47,12 @@ lang_finish ()
 {
 }
 
+char *
+lang_identify ()
+{
+  return "c";
+}
+
 /* Used by c-lex.c, but only for objc.  */
 tree
 lookup_interface (arg)
index e943fa60eb9df8fa0de4e4dae35201d8f0ab4f19..7234206e7d2565fd7b55af0f8b0756f2b82d4821 100644 (file)
@@ -108,3 +108,13 @@ do { fprintf (FILE, "\t%s\t", ASM_SHORT);                          \
   }                                                                          \
   while (0)
 #endif
+
+#ifndef ASM_IDENTIFY_GCC
+  /* Default the definition, only if ASM_IDENTIFY_GCC is not set,
+     because if it is set, we might not want ASM_IDENTIFY_LANGUAGE
+     outputting labels, if we do want it to, then it must be defined
+     in the tm.h file.  */
+#ifndef ASM_IDENTIFY_LANGUAGE
+#define ASM_IDENTIFY_LANGUAGE(FILE) output_lang_identify (FILE);
+#endif
+#endif
index bfffa7818cf32a03cdbde26ec6b9df1ec638fc6f..a7ae6766fece12cdba7fac1bde87892af2e56e8b 100644 (file)
@@ -371,6 +371,12 @@ lang_finish ()
 {
 }
 
+char *
+lang_identify ()
+{
+  return "objc";
+}
+
 int
 lang_decode_option (p)
      char *p;
index 3ac6132a35391d683777bec16c912784f6f0259c..34351b11ba7ab769ab18d3a0b104bc2d99043bcd 100644 (file)
@@ -52,6 +52,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #include "rtl.h"
 #include "flags.h"
 #include "insn-attr.h"
+#include "defaults.h"
 
 #ifdef XCOFF_DEBUGGING_INFO
 #include "xcoffout.h"
@@ -1495,6 +1496,17 @@ output_file_directive (asm_file, input_name)
 #endif
 }
 \f
+/* Routine to build language identifier for object file. */
+static void
+output_lang_identify (asm_out_file)
+     FILE *asm_out_file;
+{
+  int len = strlen (lang_identify ()) + sizeof ("__gnu_compiled_") + 1;
+  char *s = (char *) alloca (len);
+  sprintf (s, "__gnu_compiled_%s", lang_identify ());
+  ASM_OUTPUT_LABEL (asm_out_file, s);
+}
+
 /* Compile an entire file of output from cpp, named NAME.
    Write a file of assembly output and various debugging dumps.  */
 
@@ -1789,6 +1801,12 @@ compile_file (name)
 #else
   ASM_IDENTIFY_GCC (asm_out_file);
 #endif
+
+  /* Output something to identify which front-end produced this file. */
+#ifdef ASM_IDENTIFY_LANGUAGE
+  ASM_IDENTIFY_LANGUAGE (asm_out_file);
+#endif
+
   /* Don't let the first function fall at the same address
      as gcc_compiled., if profiling.  */
   if (profile_flag || profile_block_flag)
index 555f8770da4a3d795e857da5eee53bdec11a184d..5e2522f9c4d7ae68d1e0faaa36660eb7a175c3f7 100644 (file)
@@ -1427,6 +1427,9 @@ extern void init_decl_processing          PROTO((void));
 extern void lang_init                          PROTO((void));
 extern void lang_finish                                PROTO((void));
 
+/* Funtion to identify which front-end produced the output file. */
+extern char *lang_identify                     PROTO((void));
+
 /* Function called with no arguments to parse and compile the input.  */
 extern int yyparse                             PROTO((void));
 /* Function called with option as argument
This page took 0.083111 seconds and 5 git commands to generate.