dbxout.c (get_lang_number): New.
authorDevang Patel <dpatel@apple.com>
Fri, 17 Sep 2004 18:47:19 +0000 (11:47 -0700)
committerDevang Patel <dpatel@gcc.gnu.org>
Fri, 17 Sep 2004 18:47:19 +0000 (11:47 -0700)
       * dbxout.c (get_lang_number): New.
       (dbxout_init): Include lang number in N_SO  stab.
       * dbxout.h (N_SO_AS, N_SO_C, N_SO_ANSI_C, N_SO_CC, N_SO_FORTRAN,
       N_SO_PASCAL, N_SO_FORTRAN90, N_SO_OBJC, N_SO_OBJCPLUS): New #define.

testsuite
       * gcc.dg/20040813-1.c: New test.

From-SVN: r87663

gcc/ChangeLog
gcc/dbxout.c
gcc/dbxout.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/20040813-1.c [new file with mode: 0644]

index 2f32b50233dbceb9caaa02609160fb166aa509b1..9b11e42c71c8376cf6d1c63fc3ef1dab4543d744 100644 (file)
@@ -1,3 +1,10 @@
+2004-09-17  Devang Patel  <dpatel@apple.com>
+
+       * dbxout.c (get_lang_number): New.
+       (dbxout_init): Include lang number in N_SO  stab.
+       * dbxout.h (N_SO_AS, N_SO_C, N_SO_ANSI_C, N_SO_CC, N_SO_FORTRAN,
+       N_SO_PASCAL, N_SO_FORTRAN90, N_SO_OBJC, N_SO_OBJCPLUS): New #define.
+       
 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
 
        PR tree-optimization/17273
index 9527c1de26dfc4a72f61bfb639bc5a4ac98f7401..452a62d8cb7d17124e488756542cb15365e84eb1 100644 (file)
@@ -343,6 +343,7 @@ static void emit_pending_bincls         (void);
 static inline void emit_pending_bincls_if_required (void);
 
 static void dbxout_init (const char *);
+static unsigned int get_lang_number (void);
 static void dbxout_finish (const char *);
 static void dbxout_start_source_file (unsigned, const char *);
 static void dbxout_end_source_file (unsigned);
@@ -489,6 +490,30 @@ dbxout_function_end (void)
 }
 #endif /* DBX_DEBUGGING_INFO */
 
+/* Get lang description for N_SO stab.  */
+
+static unsigned int
+get_lang_number (void)
+{
+  const char *language_string = lang_hooks.name;
+
+  if (strcmp (language_string, "GNU C") == 0)
+    return N_SO_C;
+  else if (strcmp (language_string, "GNU C++") == 0)
+    return N_SO_CC;
+  else if (strcmp (language_string, "GNU F77") == 0)
+    return N_SO_FORTRAN;
+  else if (strcmp (language_string, "GNU F95") == 0)
+    return N_SO_FORTRAN90; /* CHECKME */
+  else if (strcmp (language_string, "GNU Pascal") == 0)
+    return N_SO_PASCAL;
+  else if (strcmp (language_string, "GNU Objective-C") == 0)
+    return N_SO_OBJC;
+  else
+    return 0;
+
+}
+
 /* At the beginning of compilation, start writing the symbol table.
    Initialize `typevec' and output the standard data types of C.  */
 
@@ -521,7 +546,7 @@ dbxout_init (const char *input_file_name)
 #else /* no DBX_OUTPUT_MAIN_SOURCE_DIRECTORY */
          fprintf (asmfile, "%s", ASM_STABS_OP);
          output_quoted_string (asmfile, cwd);
-         fprintf (asmfile, ",%d,0,0,", N_SO);
+         fprintf (asmfile, ",%d,0,%d,", N_SO, get_lang_number ());
          assemble_name (asmfile, ltext_label_name);
          fputc ('\n', asmfile);
 #endif /* no DBX_OUTPUT_MAIN_SOURCE_DIRECTORY */
@@ -536,7 +561,7 @@ dbxout_init (const char *input_file_name)
   /* Used to put `Ltext:' before the reference, but that loses on sun 4.  */
   fprintf (asmfile, "%s", ASM_STABS_OP);
   output_quoted_string (asmfile, input_file_name);
-  fprintf (asmfile, ",%d,0,0,", N_SO);
+  fprintf (asmfile, ",%d,0,%d,", N_SO, get_lang_number ());
   assemble_name (asmfile, ltext_label_name);
   fputc ('\n', asmfile);
   text_section ();
index 1d3a2927cea6c07fde6f7c39f6bab0d42ba83a7e..dcbd01112bff7093275ed56c2f5c1e0f3e772c0c 100644 (file)
@@ -27,4 +27,15 @@ extern void dbxout_parms (tree);
 extern void dbxout_reg_parms (tree);
 extern int dbxout_syms (tree);
 
+/* Language description for N_SO stabs.  */
+#define N_SO_AS          1
+#define N_SO_C           2
+#define N_SO_ANSI_C      3
+#define N_SO_CC          4 /* c++*/
+#define N_SO_FORTRAN     5
+#define N_SO_PASCAL      6
+#define N_SO_FORTRAN90   7
+#define N_SO_OBJC        50
+#define N_SO_OBJCPLUS    51
+
 #endif /* GCC_DBXOUT_H */
index 1eda48d7e44131e9e9db52f5d84ceb4fee01bc35..db4d92d86da31b8350932dabcb737e58709b211d 100644 (file)
@@ -1,3 +1,7 @@
+2004-09-17  Devang Patel  <dpatel@apple.com>
+
+       * gcc.dg/20040813-1.c: New test.
+       
 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
 
        PR tree-optimization/17273
diff --git a/gcc/testsuite/gcc.dg/20040813-1.c b/gcc/testsuite/gcc.dg/20040813-1.c
new file mode 100644 (file)
index 0000000..c866d4c
--- /dev/null
@@ -0,0 +1,14 @@
+/* Test lang in N_SO stab.  */
+/* Contributed by Devang Patel  <dpatel@apple.com>  */
+
+/* { dg-do compile } */
+/* { dg-options "-gstabs" } */
+
+int
+main ()
+{
+  return 0;
+}
+
+/* { dg-final { scan-assembler ".stabs*100,0,2" } } */
+