} \
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
#include "rtl.h"
#include "flags.h"
#include "insn-attr.h"
+#include "defaults.h"
#ifdef XCOFF_DEBUGGING_INFO
#include "xcoffout.h"
#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. */
#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)
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