diff options
author | dpatel <dpatel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-09-17 18:47:19 +0000 |
---|---|---|
committer | dpatel <dpatel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-09-17 18:47:19 +0000 |
commit | 913910e01dc0ce34facaab0f3d4c260703418a4f (patch) | |
tree | 3e4dbb0e879325eb0d0cdf3028153f26ee13af5c /gcc/dbxout.c | |
parent | efbde115d30502ae873c40336438d05b9f80318f (diff) | |
download | gcc-913910e01dc0ce34facaab0f3d4c260703418a4f.tar.gz |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87663 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/dbxout.c')
-rw-r--r-- | gcc/dbxout.c | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/gcc/dbxout.c b/gcc/dbxout.c index 9527c1de26d..452a62d8cb7 100644 --- a/gcc/dbxout.c +++ b/gcc/dbxout.c @@ -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 (); |