aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Mitchell <mmitchel@gcc.gnu.org>2000-07-10 06:32:58 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2000-07-10 06:32:58 +0000
commit089acd579b8079afb590c101117ea76be13c7093 (patch)
tree5051abc8a317f134f9e8094f036b9e65117db982
parent7b019c1999f0d8320fe9c1a304e1fdde48d4e278 (diff)
downloadgcc-089acd579b8079afb590c101117ea76be13c7093.zip
gcc-089acd579b8079afb590c101117ea76be13c7093.tar.gz
gcc-089acd579b8079afb590c101117ea76be13c7093.tar.bz2
decl.c (pushtag): Don't put local classes in template functions on the local_classes list.
* decl.c (pushtag): Don't put local classes in template functions on the local_classes list. * decl2.c (get_guard): Add missing return for old ABI local variable case. From-SVN: r34937
-rw-r--r--gcc/cp/ChangeLog10
-rw-r--r--gcc/cp/decl.c3
-rw-r--r--gcc/cp/decl2.c1
3 files changed, 13 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 0caff7f..6bc9696 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,15 @@
2000-07-09 Mark Mitchell <mark@codesourcery.com>
+ * decl.c (pushtag): Don't put local classes in template functions
+ on the local_classes list.
+
+2000-07-04 Scott Snyder <snyder@fnal.gov>
+
+ * decl2.c (get_guard): Add missing return for old ABI local
+ variable case.
+
+2000-07-09 Mark Mitchell <mark@codesourcery.com>
+
* cp-tree.h (char_type_p): New function.
* decl.c (init_decl_processing): Don't initialize
signed_wchar_type_node or unsigned_wchar_type_node.
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index ee0d058..b5eddde 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -2899,7 +2899,8 @@ pushtag (name, type, globalize)
way. (It's otherwise tricky to find a member function definition
it's only pointed to from within a local class.) */
if (TYPE_CONTEXT (type)
- && TREE_CODE (TYPE_CONTEXT (type)) == FUNCTION_DECL)
+ && TREE_CODE (TYPE_CONTEXT (type)) == FUNCTION_DECL
+ && !processing_template_decl)
VARRAY_PUSH_TREE (local_classes, type);
if (!uses_template_parms (type))
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c
index bbc66ad..600cfcef 100644
--- a/gcc/cp/decl2.c
+++ b/gcc/cp/decl2.c
@@ -2874,6 +2874,7 @@ get_guard (decl)
{
guard = get_temp_name (integer_type_node);
rest_of_decl_compilation (guard, NULL_PTR, 0, 0);
+ return guard;
}
if (!flag_new_abi)