aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/pt.c
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2003-09-01 19:18:03 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2003-09-01 19:18:03 +0000
commit7e99327dbcd3f1d453088f63eebe65994aded8c2 (patch)
tree3ba8f4e6715b6c18572eca713097806119e13254 /gcc/cp/pt.c
parent4b09846beff900c43203222269e235d3b6d56a47 (diff)
downloadgcc-7e99327dbcd3f1d453088f63eebe65994aded8c2.zip
gcc-7e99327dbcd3f1d453088f63eebe65994aded8c2.tar.gz
gcc-7e99327dbcd3f1d453088f63eebe65994aded8c2.tar.bz2
re PR c++/12114 ([3.3.2] Uninitialized memory accessed in dtor)
PR c++/12114 * g++.dg/init/ref9.C: New test. PR c++/11972 * g++.dg/template/nested4.C: New test. PR c++/12114 * cp-tree.h (initialize_reference): Change prototype. * call.c (initialize_reference): Add cleanup parameter. * decl.c (grok_reference_init): Likewise. (check_initializer): Likewise. (cp_finish_decl): Insert a CLEANUP_STMT if necessary. (duplicate_decls): When replacing an anticipated builtin, do not honor TREE_NOTHROW. * typeck.c (convert_for_initialization): Correct call to initialize_reference. PR c++/11972 * pt.c (dependent_type_p_r): Pass only the innermost template arguments to any_dependent_template_arguments_p. From-SVN: r70981
Diffstat (limited to 'gcc/cp/pt.c')
-rw-r--r--gcc/cp/pt.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 0c57143..8cf8d15 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -11332,7 +11332,8 @@ dependent_type_p_r (tree type)
/* ... or any of the template arguments is a dependent type or
an expression that is type-dependent or value-dependent. */
else if (CLASS_TYPE_P (type) && CLASSTYPE_TEMPLATE_INFO (type)
- && any_dependent_template_arguments_p (CLASSTYPE_TI_ARGS (type)))
+ && (any_dependent_template_arguments_p
+ (INNERMOST_TEMPLATE_ARGS (CLASSTYPE_TI_ARGS (type)))))
return true;
/* All TYPEOF_TYPEs are dependent; if the argument of the `typeof'