From de6745dbf12eb8808a3a94610716c380d82b6f4f Mon Sep 17 00:00:00 2001
From: law <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 12 Jul 2000 04:26:07 +0000
Subject: [PATCH] 	* pa.c (hppa_encode_label): Store labels in gc memory
 when ggc_p is 	true.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34979 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/ChangeLog      |  3 +++
 gcc/config/pa/pa.c | 11 +++++++----
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ec4747dd1d2..7b3b1fab156 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -4,6 +4,9 @@
 
 2000-07-11  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
 
+	* pa.c (hppa_encode_label): Store labels in gc memory when ggc_p is
+	true.
+
 	* aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Extend test to detect systems
 	with MAP_ANONYMOUS and MAP_ANON.
 	* configure, config.in: Rebuilt.
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index d9b7f8e6a26..35689b8abca 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -5951,9 +5951,9 @@ output_call (insn, call_dest, sibcall)
    space), and special magic is needed to construct their address.
 
    For reasons too disgusting to describe storage for the new name
-   is allocated either on the saveable_obstack (released at function
-   exit) or on the permanent_obstack for things that can never change
-   (libcall names for example). */
+   is allocated as a ggc string, or as a string on the saveable_obstack
+   (released at function exit) or on the permanent_obstack for things
+   that can never change (libcall names for example). */
 
 void
 hppa_encode_label (sym, permanent)
@@ -5964,7 +5964,10 @@ hppa_encode_label (sym, permanent)
   int len = strlen (str);
   char *newstr;
 
-  newstr = obstack_alloc ((permanent ? &permanent_obstack : saveable_obstack),
+  if (ggc_p)
+    newstr = ggc_alloc_string (NULL, len + 1);
+  else
+    newstr = obstack_alloc ((permanent ? &permanent_obstack : saveable_obstack),
 			  len + 2);
 
   if (str[0] == '*')
-- 
GitLab