Commit 0456cbf6 by Devang Patel Committed by Devang Patel

dbxout.c (get_lang_number): New.

       * 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
parent 7eae8eb2
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> 2004-09-17 Diego Novillo <dnovillo@redhat.com>
PR tree-optimization/17273 PR tree-optimization/17273
......
...@@ -343,6 +343,7 @@ static void emit_pending_bincls (void); ...@@ -343,6 +343,7 @@ static void emit_pending_bincls (void);
static inline void emit_pending_bincls_if_required (void); static inline void emit_pending_bincls_if_required (void);
static void dbxout_init (const char *); static void dbxout_init (const char *);
static unsigned int get_lang_number (void);
static void dbxout_finish (const char *); static void dbxout_finish (const char *);
static void dbxout_start_source_file (unsigned, const char *); static void dbxout_start_source_file (unsigned, const char *);
static void dbxout_end_source_file (unsigned); static void dbxout_end_source_file (unsigned);
...@@ -489,6 +490,30 @@ dbxout_function_end (void) ...@@ -489,6 +490,30 @@ dbxout_function_end (void)
} }
#endif /* DBX_DEBUGGING_INFO */ #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. /* At the beginning of compilation, start writing the symbol table.
Initialize `typevec' and output the standard data types of C. */ Initialize `typevec' and output the standard data types of C. */
...@@ -521,7 +546,7 @@ dbxout_init (const char *input_file_name) ...@@ -521,7 +546,7 @@ dbxout_init (const char *input_file_name)
#else /* no DBX_OUTPUT_MAIN_SOURCE_DIRECTORY */ #else /* no DBX_OUTPUT_MAIN_SOURCE_DIRECTORY */
fprintf (asmfile, "%s", ASM_STABS_OP); fprintf (asmfile, "%s", ASM_STABS_OP);
output_quoted_string (asmfile, cwd); 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); assemble_name (asmfile, ltext_label_name);
fputc ('\n', asmfile); fputc ('\n', asmfile);
#endif /* no DBX_OUTPUT_MAIN_SOURCE_DIRECTORY */ #endif /* no DBX_OUTPUT_MAIN_SOURCE_DIRECTORY */
...@@ -536,7 +561,7 @@ dbxout_init (const char *input_file_name) ...@@ -536,7 +561,7 @@ dbxout_init (const char *input_file_name)
/* Used to put `Ltext:' before the reference, but that loses on sun 4. */ /* Used to put `Ltext:' before the reference, but that loses on sun 4. */
fprintf (asmfile, "%s", ASM_STABS_OP); fprintf (asmfile, "%s", ASM_STABS_OP);
output_quoted_string (asmfile, input_file_name); 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); assemble_name (asmfile, ltext_label_name);
fputc ('\n', asmfile); fputc ('\n', asmfile);
text_section (); text_section ();
......
...@@ -27,4 +27,15 @@ extern void dbxout_parms (tree); ...@@ -27,4 +27,15 @@ extern void dbxout_parms (tree);
extern void dbxout_reg_parms (tree); extern void dbxout_reg_parms (tree);
extern int dbxout_syms (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 */ #endif /* GCC_DBXOUT_H */
2004-09-17 Devang Patel <dpatel@apple.com>
* gcc.dg/20040813-1.c: New test.
2004-09-17 Diego Novillo <dnovillo@redhat.com> 2004-09-17 Diego Novillo <dnovillo@redhat.com>
PR tree-optimization/17273 PR tree-optimization/17273
......
/* 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" } } */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment