gas/
[deliverable/binutils-gdb.git] / gas / stabs.c
index 96f279a3fafc26590b7260915e430c4444cb8bff..f8acdc8425754a349f987ca4036be0c863e6408f 100644 (file)
@@ -34,8 +34,8 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 
 int outputting_stabs_line_debug = 0;
 
-static void s_stab_generic PARAMS ((int, char *, char *));
-static void generate_asm_file PARAMS ((int, char *));
+static void s_stab_generic (int, char *, char *);
+static void generate_asm_file (int, char *);
 
 /* Allow backends to override the names used for the stab sections.  */
 #ifndef STAB_SECTION_NAME
@@ -80,9 +80,7 @@ static const char *current_function_label;
 #endif
 
 unsigned int
-get_stab_string_offset (string, stabstr_secname)
-     const char *string;
-     const char *stabstr_secname;
+get_stab_string_offset (const char *string, const char *stabstr_secname)
 {
   unsigned int length;
   unsigned int retval;
@@ -179,10 +177,7 @@ aout_process_stab (what, string, type, other, desc)
    kinds of stab sections.  */
 
 static void
-s_stab_generic (what, stab_secname, stabstr_secname)
-     int what;
-     char *stab_secname;
-     char *stabstr_secname;
+s_stab_generic (int what, char *stab_secname, char *stabstr_secname)
 {
   long longint;
   char *string, *saved_string_obstack_end;
@@ -247,7 +242,7 @@ s_stab_generic (what, stab_secname, stabstr_secname)
        format, probably DWARF.  */
     as_warn (_(".stab%c: description field '%x' too big, try a different debug format"),
             what, desc);
-    
+
   if (what == 's' || what == 'n')
     {
       if (*input_line_pointer != ',')
@@ -371,13 +366,11 @@ s_stab_generic (what, stab_secname, stabstr_secname)
        }
       else
        {
-         const char *fake;
          symbolS *symbol;
          expressionS exp;
 
          /* Arrange for a value representing the current location.  */
-         fake = FAKE_LABEL_NAME;
-         symbol = symbol_new (fake, saved_seg, dot, saved_frag);
+         symbol = symbol_temp_new (saved_seg, dot, saved_frag);
 
          exp.X_op = O_symbol;
          exp.X_add_symbol = symbol;
@@ -407,8 +400,7 @@ s_stab_generic (what, stab_secname, stabstr_secname)
 /* Regular stab directive.  */
 
 void
-s_stab (what)
-     int what;
+s_stab (int what)
 {
   s_stab_generic (what, STAB_SECTION_NAME, STAB_STRING_SECTION_NAME);
 }
@@ -416,8 +408,7 @@ s_stab (what)
 /* "Extended stabs", used in Solaris only now.  */
 
 void
-s_xstab (what)
-     int what;
+s_xstab (int what)
 {
   int length;
   char *stab_secname, *stabstr_secname;
@@ -498,12 +489,21 @@ s_desc (ignore)
 /* Generate stabs debugging information to denote the main source file.  */
 
 void
-stabs_generate_asm_file ()
+stabs_generate_asm_file (void)
 {
   char *file;
   unsigned int lineno;
 
   as_where (&file, &lineno);
+  if (use_gnu_debug_info_extensions)
+    {
+      char *dir, *dir2;
+
+      dir = getpwd ();
+      dir2 = alloca (strlen (dir) + 2);
+      sprintf (dir2, "%s%s", dir, "/");
+      generate_asm_file (N_SO, dir2);
+    }
   generate_asm_file (N_SO, file);
 }
 
@@ -511,9 +511,7 @@ stabs_generate_asm_file ()
    TYPE is one of N_SO, N_SOL.  */
 
 static void
-generate_asm_file (type, file)
-     int type;
-     char *file;
+generate_asm_file (int type, char *file)
 {
   static char *last_file;
   static int label_count;
@@ -522,7 +520,7 @@ generate_asm_file (type, file)
   char *buf;
   char *tmp = file;
   char *endp = file + strlen (file);
-  char *bufp = buf;
+  char *bufp;
 
   if (last_file != NULL
       && strcmp (last_file, file) == 0)
@@ -580,7 +578,7 @@ generate_asm_file (type, file)
    used to produce debugging information for an assembler file.  */
 
 void
-stabs_generate_asm_lineno ()
+stabs_generate_asm_lineno (void)
 {
   static int label_count;
   char *hold;
@@ -657,9 +655,7 @@ stabs_generate_asm_lineno ()
    All assembler functions are assumed to have return type `void'.  */
 
 void
-stabs_generate_asm_func (funcname, startlabname)
-     const char *funcname;
-     const char *startlabname;
+stabs_generate_asm_func (const char *funcname, const char *startlabname)
 {
   static int void_emitted_p;
   char *hold = input_line_pointer;
@@ -689,9 +685,8 @@ stabs_generate_asm_func (funcname, startlabname)
 /* Emit a stab to record the end of a function.  */
 
 void
-stabs_generate_asm_endfunc (funcname, startlabname)
-     const char *funcname ATTRIBUTE_UNUSED;
-     const char *startlabname;
+stabs_generate_asm_endfunc (const char *funcname ATTRIBUTE_UNUSED,
+                           const char *startlabname)
 {
   static int label_count;
   char *hold = input_line_pointer;
This page took 0.039437 seconds and 4 git commands to generate.