This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix PCH failures on SPARC
- From: "John David Anglin" <dave at hiauly1 dot hia dot nrc dot ca>
- To: dave at hiauly1 dot hia dot nrc dot ca (John David Anglin)
- Cc: gcc-patches at gcc dot gnu dot org, ebotcazou at libertysurf dot fr
- Date: Thu, 19 Jun 2003 17:56:31 -0400 (EDT)
- Subject: Re: [PATCH] Fix PCH failures on SPARC
> I believe that the patch needs to strip the encoding from the function
> string. That's where the `*' comes from.
The following patch fixes the problem. I will install after a full
bootstrap and check completes.
Dave
--
J. David Anglin dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6602)
2003-06-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* som.h (ASM_OUTPUT_SOURCE_LINE): Use targetm.strip_name_encoding to
strip name encoding.
Index: config/pa/som.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/pa/som.h,v
retrieving revision 1.42
diff -u -3 -p -r1.42 som.h
--- config/pa/som.h 17 Jun 2003 08:06:57 -0000 1.42
+++ config/pa/som.h 19 Jun 2003 21:40:16 -0000
@@ -30,16 +30,20 @@ Boston, MA 02111-1307, USA. */
/* We make the first line stab special to avoid adding several
gross hacks to GAS. */
#undef ASM_OUTPUT_SOURCE_LINE
-#define ASM_OUTPUT_SOURCE_LINE(file, line, counter) \
- { static tree last_function_decl = NULL; \
- if (current_function_decl == last_function_decl) \
- fprintf (file, "\t.stabn 68,0,%d,L$M%d-%s\nL$M%d:\n", \
- line, counter, \
- XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0) + 1, \
- counter); \
- else \
- fprintf (file, "\t.stabn 68,0,%d,0\n", line); \
- last_function_decl = current_function_decl; \
+#define ASM_OUTPUT_SOURCE_LINE(file, line, counter) \
+ { static tree last_function_decl = NULL; \
+ if (current_function_decl == last_function_decl) \
+ { \
+ rtx func = DECL_RTL (current_function_decl); \
+ const char *name = XSTR (XEXP (func, 0), 0); \
+ fprintf (file, "\t.stabn 68,0,%d,L$M%d-%s\nL$M%d:\n", \
+ line, counter, \
+ (* targetm.strip_name_encoding) (name), \
+ counter); \
+ } \
+ else \
+ fprintf (file, "\t.stabn 68,0,%d,0\n", line); \
+ last_function_decl = current_function_decl; \
}
/* gdb needs a null N_SO at the end of each file for scattered loading. */