winnt.c (i386_pe_strip_name_encoding_full): Strip leading '@' on fastcall symbols...
authorDanny Smith <dannysmith@users.sourceforge.net>
Fri, 12 Mar 2004 18:25:18 +0000 (18:25 +0000)
committerDanny Smith <dannysmith@gcc.gnu.org>
Fri, 12 Mar 2004 18:25:18 +0000 (18:25 +0000)
* config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
leading '@' on fastcall symbols before stripping suffix.

From-SVN: r79400

gcc/ChangeLog
gcc/config/i386/winnt.c

index 70c720cc760c8aefcc84359ea3ed7fc5b7837180..0a2cd8ba2640772018518ba3f1a39a2108f8f9bf 100644 (file)
@@ -1,3 +1,8 @@
+2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
+
+       * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
+       leading '@' on fastcall symbols before stripping suffix.
+
 2004-03-12  Roger Sayle  <roger@eyesopen.com>
 
        * combine.c (unmentioned_reg_p): New function to check whether an
index cf7b61ebcc0c4cc8dea5560104c3bd0fab21d6b1..c4326f01a287522db058d401521fb666248023de 100644 (file)
@@ -558,7 +558,7 @@ i386_pe_strip_name_encoding (const char *str)
   return str;
 }
 
-/* Also strip the stdcall suffix.  */
+/* Also strip the fastcall prefix and stdcall suffix.  */
 
 const char *
 i386_pe_strip_name_encoding_full (const char *str)
@@ -566,6 +566,11 @@ i386_pe_strip_name_encoding_full (const char *str)
   const char *p;
   const char *name = i386_pe_strip_name_encoding (str);
 
+  /* Strip leading '@' on fastcall symbols.  */
+  if (*name == '@')
+    name++;
+
+  /* Strip trailing "@n".  */
   p = strchr (name, '@');
   if (p)
     return ggc_alloc_string (name, p - name);