diff options
author | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-06-07 21:54:07 +0000 |
---|---|---|
committer | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-06-07 21:54:07 +0000 |
commit | 8ce5985492e01af26fb8cabcc38118f8ae0a91e2 (patch) | |
tree | 98e87e498bdd1f36569c008ebee5e40e0895652a /libstdc++-v3 | |
parent | ee662d6d621fd06c26894dab6625036ec8383846 (diff) | |
download | gcc-8ce5985492e01af26fb8cabcc38118f8ae0a91e2.tar.gz |
PR c++/48969
PR c++/44175
gcc/c-family/
* c-common.c (max_tinst_depth): Lower default to 900.
gcc/cp/
* error.c (subst_to_string): New.
(cp_printer): Use it for 'S'.
(print_instantiation_partial_context_line): Handle subst context.
* pt.c (push_tinst_level): Handle subst context.
(deduction_tsubst_fntype): Don't track specific substitutions.
Use push_tinst_level.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@174772 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3')
19 files changed, 60 insertions, 39 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index e00f06a2159..b259e9a9782 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,24 @@ +2011-06-07 Jason Merrill <jason@redhat.com> + + * testsuite/lib/prune.exp: s/required/instantiated/. + * testsuite/20_util/declval/requirements/1_neg.cc: Likewise. + * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise. + * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise. + * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise. + * testsuite/20_util/forward/1_neg.cc: Likewise. + * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise. + * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Likewise. + * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise. + * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise. + * testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc: Likewise. + * testsuite/ext/ext_pointer/1_neg.cc: Likewise. + * testsuite/ext/pb_ds/example/hash_resize_neg.cc: Likewise. + * testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Likewise. + * testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise. + * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise. + * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Likewise. + * testsuite/tr1/2_general_utilities/shared_ptr/assign/shared_ptr_neg.cc: Likewise. + 2011-06-07 Paolo Carlini <paolo.carlini@oracle.com> * include/bits/move.h (struct __move_if_noexcept_cond): Add. diff --git a/libstdc++-v3/testsuite/20_util/declval/requirements/1_neg.cc b/libstdc++-v3/testsuite/20_util/declval/requirements/1_neg.cc index 8fcdab40a58..a5f4b286bc0 100644 --- a/libstdc++-v3/testsuite/20_util/declval/requirements/1_neg.cc +++ b/libstdc++-v3/testsuite/20_util/declval/requirements/1_neg.cc @@ -25,5 +25,5 @@ void test01() { - std::declval<int>(); // { dg-error "instantiated from here" } + std::declval<int>(); // { dg-error "required from here" } } diff --git a/libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg1.cc b/libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg1.cc index 5965f03b1b3..1e9c69ebf89 100644 --- a/libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg1.cc +++ b/libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg1.cc @@ -32,4 +32,4 @@ void test01() } // { dg-error "rep cannot be a duration" "" { target *-*-* } 226 } -// { dg-error "instantiated from here" "" { target *-*-* } 31 } +// { dg-error "required from here" "" { target *-*-* } 31 } diff --git a/libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg2.cc b/libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg2.cc index d84ab9e8cf5..c30d94c2e0a 100644 --- a/libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg2.cc +++ b/libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg2.cc @@ -33,5 +33,5 @@ void test01() } // { dg-error "must be a specialization of ratio" "" { target *-*-* } 227 } -// { dg-error "instantiated from here" "" { target *-*-* } 32 } +// { dg-error "required from here" "" { target *-*-* } 32 } // { dg-excess-errors "In instantiation of" } diff --git a/libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg3.cc b/libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg3.cc index 7c73bf996dd..940af7f805c 100644 --- a/libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg3.cc +++ b/libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg3.cc @@ -34,4 +34,4 @@ void test01() } // { dg-error "period must be positive" "" { target *-*-* } 229 } -// { dg-error "instantiated from here" "" { target *-*-* } 33 } +// { dg-error "required from here" "" { target *-*-* } 33 } diff --git a/libstdc++-v3/testsuite/20_util/forward/1_neg.cc b/libstdc++-v3/testsuite/20_util/forward/1_neg.cc index 6c007bee236..978ea52c7f8 100644 --- a/libstdc++-v3/testsuite/20_util/forward/1_neg.cc +++ b/libstdc++-v3/testsuite/20_util/forward/1_neg.cc @@ -38,7 +38,7 @@ struct A void g() { - std::shared_ptr<A> sp1 = factory<A>(2, 1.414); // { dg-error "instantiated from here" } + std::shared_ptr<A> sp1 = factory<A>(2, 1.414); // { dg-error "required from here" } } // { dg-excess-errors "" } diff --git a/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs_neg.cc b/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs_neg.cc index 77328d8a4c2..f37d4fbf88a 100644 --- a/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs_neg.cc +++ b/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs_neg.cc @@ -43,10 +43,10 @@ void test01() } // { dg-error "does not name a type" "" { target *-*-* } 33 } -// { dg-error "instantiated from here" "" { target *-*-* } 35 } -// { dg-error "instantiated from here" "" { target *-*-* } 37 } -// { dg-error "instantiated from here" "" { target *-*-* } 40 } -// { dg-error "instantiated from here" "" { target *-*-* } 42 } +// { dg-error "required from here" "" { target *-*-* } 35 } +// { dg-error "required from here" "" { target *-*-* } 37 } +// { dg-error "required from here" "" { target *-*-* } 40 } +// { dg-error "required from here" "" { target *-*-* } 42 } // { dg-error "invalid use of incomplete type" "" { target *-*-* } 1511 } // { dg-error "declaration of" "" { target *-*-* } 1475 } diff --git a/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc b/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc index 572953eef27..497f170d97a 100644 --- a/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc +++ b/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc @@ -43,10 +43,10 @@ void test01() } // { dg-error "does not name a type" "" { target *-*-* } 33 } -// { dg-error "instantiated from here" "" { target *-*-* } 35 } -// { dg-error "instantiated from here" "" { target *-*-* } 37 } -// { dg-error "instantiated from here" "" { target *-*-* } 40 } -// { dg-error "instantiated from here" "" { target *-*-* } 42 } +// { dg-error "required from here" "" { target *-*-* } 35 } +// { dg-error "required from here" "" { target *-*-* } 37 } +// { dg-error "required from here" "" { target *-*-* } 40 } +// { dg-error "required from here" "" { target *-*-* } 42 } // { dg-error "invalid use of incomplete type" "" { target *-*-* } 1435 } // { dg-error "declaration of" "" { target *-*-* } 1399 } diff --git a/libstdc++-v3/testsuite/20_util/ratio/cons/cons_overflow_neg.cc b/libstdc++-v3/testsuite/20_util/ratio/cons/cons_overflow_neg.cc index e6a71c3fe5d..83f5ce11f03 100644 --- a/libstdc++-v3/testsuite/20_util/ratio/cons/cons_overflow_neg.cc +++ b/libstdc++-v3/testsuite/20_util/ratio/cons/cons_overflow_neg.cc @@ -46,9 +46,9 @@ test04() std::ratio<1,0> r1 __attribute__((unused)); } -// { dg-error "instantiated from here" "" { target *-*-* } 34 } -// { dg-error "instantiated from here" "" { target *-*-* } 40 } -// { dg-error "instantiated from here" "" { target *-*-* } 46 } +// { dg-error "required from here" "" { target *-*-* } 34 } +// { dg-error "required from here" "" { target *-*-* } 40 } +// { dg-error "required from here" "" { target *-*-* } 46 } // { dg-error "denominator cannot be zero" "" { target *-*-* } 268 } // { dg-error "out of range" "" { target *-*-* } 269 } // { dg-error "overflow in constant expression" "" { target *-*-* } 109 } diff --git a/libstdc++-v3/testsuite/20_util/ratio/operations/ops_overflow_neg.cc b/libstdc++-v3/testsuite/20_util/ratio/operations/ops_overflow_neg.cc index f1da21978ec..07b1a567b01 100644 --- a/libstdc++-v3/testsuite/20_util/ratio/operations/ops_overflow_neg.cc +++ b/libstdc++-v3/testsuite/20_util/ratio/operations/ops_overflow_neg.cc @@ -36,9 +36,9 @@ test02() std::ratio_multiply<std::ratio<INTMAX_MAX>, std::ratio<INTMAX_MAX>>::type r2; } -// { dg-error "instantiated from here" "" { target *-*-* } 29 } -// { dg-error "instantiated from here" "" { target *-*-* } 35 } -// { dg-error "instantiated from here" "" { target *-*-* } 36 } +// { dg-error "required from here" "" { target *-*-* } 29 } +// { dg-error "required from here" "" { target *-*-* } 35 } +// { dg-error "required from here" "" { target *-*-* } 36 } // { dg-error "overflow in addition" "" { target *-*-* } 432 } // { dg-error "overflow in multiplication" "" { target *-*-* } 104 } // { dg-error "overflow in multiplication" "" { target *-*-* } 100 } diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc index e0d09dee900..a56148a3f9a 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc @@ -49,4 +49,4 @@ main() } // { dg-error "In member function" "" { target *-*-* } 0 } // { dg-error "cannot convert" "" { target *-*-* } 0 } -// { dg-error "instantiated from" "" { target *-*-* } 0 } +// { dg-error "required from" "" { target *-*-* } 0 } diff --git a/libstdc++-v3/testsuite/ext/ext_pointer/1_neg.cc b/libstdc++-v3/testsuite/ext/ext_pointer/1_neg.cc index 0ceb9a6597a..c87e35de0fd 100644 --- a/libstdc++-v3/testsuite/ext/ext_pointer/1_neg.cc +++ b/libstdc++-v3/testsuite/ext/ext_pointer/1_neg.cc @@ -54,16 +54,16 @@ void test01(void) { A_pointer aptr( &a ); // Can't implicitly cast from A* to B* - B_pointer bptr1(aptr); // { dg-error "instantiated from here" 31 } - B_pointer bptr2(&a); // { dg-error "instantiated from here" 32 } + B_pointer bptr1(aptr); // { dg-error "required from here" 31 } + B_pointer bptr2(&a); // { dg-error "required from here" 32 } // but explicit cast/conversion is OK. B_pointer bptr3(__static_pointer_cast<B_pointer>(aptr)); // ok B_pointer bptr4(__static_pointer_cast<B_pointer>(&a)); // ok // Can't implicitly cast from A* to B* - bptr1 = aptr; // { dg-error "instantiated from here" 39 } - bptr1 = &a; // { dg-error "instantiated from here" 40 } + bptr1 = aptr; // { dg-error "required from here" 39 } + bptr1 = &a; // { dg-error "required from here" 40 } // but explicit cast/conversion is OK. bptr1 = __static_pointer_cast<B_pointer>(aptr); // ok @@ -71,21 +71,21 @@ void test01(void) { // Similarly, can't shed constness via implicit cast const_A_pointer captr(&a); - A_pointer aptr2(captr); // { dg-error "instantiated from here" 48 } + A_pointer aptr2(captr); // { dg-error "required from here" 48 } // but explicit cast/conversion is OK. A_pointer aptr3(__const_pointer_cast<A_pointer>(captr)); // ok // Similarly, can't shed constness via implicit cast - aptr2 = captr; // { dg-error "instantiated from here" 54 } + aptr2 = captr; // { dg-error "required from here" 54 } // but explicit cast/conversion is OK. aptr3 = __const_pointer_cast<A_pointer>(captr); // ok // Combine explicit const cast with implicit downcast. const_B_pointer cbptr(&b); - A_pointer aptr4(cbptr); // { dg-error "instantiated from here" 61 } - aptr4 = cbptr; // { dg-error "instantiated from here" 62 } + A_pointer aptr4(cbptr); // { dg-error "required from here" 61 } + aptr4 = cbptr; // { dg-error "required from here" 62 } A_pointer aptr5(__const_pointer_cast<B_pointer>(cbptr)); // ok aptr5 = __const_pointer_cast<B_pointer>(cbptr); // ok diff --git a/libstdc++-v3/testsuite/ext/pb_ds/example/hash_resize_neg.cc b/libstdc++-v3/testsuite/ext/pb_ds/example/hash_resize_neg.cc index 9577dfbc033..c5b2bd2e98f 100644 --- a/libstdc++-v3/testsuite/ext/pb_ds/example/hash_resize_neg.cc +++ b/libstdc++-v3/testsuite/ext/pb_ds/example/hash_resize_neg.cc @@ -57,7 +57,7 @@ int main() // The following line won't compile. The resize policy needs to be // configured to allow external resize (by default, this is not // available). - h.resize(20); // { dg-error "instantiated from" } + h.resize(20); // { dg-error "required from" } } // { dg-error "invalid" "" { target *-*-* } 187 } diff --git a/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_floating_neg.cc b/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_floating_neg.cc index 98202bdb867..fbd5f1d704a 100644 --- a/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_floating_neg.cc +++ b/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_floating_neg.cc @@ -30,9 +30,9 @@ template<typename T> int main() { - check_add_unsigned<float>(); // { dg-error "instantiated from" } + check_add_unsigned<float>(); // { dg-error "required from" } return 0; } -// { dg-error "instantiated from" "" { target *-*-* } 28 } +// { dg-error "required from" "" { target *-*-* } 28 } // { dg-error "no type" "" { target *-*-* } 69 } diff --git a/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc b/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc index f08c879e5a8..b976de022b4 100644 --- a/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc +++ b/libstdc++-v3/testsuite/ext/type_traits/add_unsigned_integer_neg.cc @@ -30,8 +30,8 @@ template<typename T> int main() { - check_add_unsigned<bool>(); // { dg-error "instantiated from" } - check_add_unsigned<wchar_t>(); // { dg-error "instantiated from" } + check_add_unsigned<bool>(); // { dg-error "required from" } + check_add_unsigned<wchar_t>(); // { dg-error "required from" } return 0; } diff --git a/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_floating_neg.cc b/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_floating_neg.cc index 486baad93b7..2e04046965a 100644 --- a/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_floating_neg.cc +++ b/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_floating_neg.cc @@ -30,9 +30,9 @@ template<typename T> int main() { - check_remove_unsigned<float>(); // { dg-error "instantiated from" } + check_remove_unsigned<float>(); // { dg-error "required from" } return 0; } -// { dg-error "instantiated from" "" { target *-*-* } 28 } +// { dg-error "required from" "" { target *-*-* } 28 } // { dg-error "no type" "" { target *-*-* } 112 } diff --git a/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc b/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc index 1ad1d93bfb9..bd5c4237e02 100644 --- a/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc +++ b/libstdc++-v3/testsuite/ext/type_traits/remove_unsigned_integer_neg.cc @@ -30,8 +30,8 @@ template<typename T> int main() { - check_remove_unsigned<bool>(); // { dg-error "instantiated from" } - check_remove_unsigned<wchar_t>(); // { dg-error "instantiated from" } + check_remove_unsigned<bool>(); // { dg-error "required from" } + check_remove_unsigned<wchar_t>(); // { dg-error "required from" } return 0; } diff --git a/libstdc++-v3/testsuite/lib/prune.exp b/libstdc++-v3/testsuite/lib/prune.exp index cdbcd310a3d..e7d6a5acb8b 100644 --- a/libstdc++-v3/testsuite/lib/prune.exp +++ b/libstdc++-v3/testsuite/lib/prune.exp @@ -39,7 +39,7 @@ proc libstdc++-dg-prune { system text } { # definitions, etc as these confuse dejagnu regsub -all "(^|\n)(\[^\n\]*: )?In ((static member |lambda )?function|member|method|(copy )?constructor|destructor|instantiation|program|subroutine|block-data)\[^\n\]*" $text "" text regsub -all "(^|\n)\[^\n\]*(: )?At (top level|global scope):\[^\n\]*" $text "" text - regsub -all "(^|\n)\[^\n\]*: (recursively )?instantiated from \[^\n\]*" $text "" text + regsub -all "(^|\n)\[^\n\]*: (recursively )?required \[^\n\]*" $text "" text regsub -all "(^|\n)\[^\n\]*: . skipping \[0-9\]* instantiation contexts \[^\n\]*" $text "" text regsub -all "(^|\n) inlined from \[^\n\]*" $text "" text # Why doesn't GCC need these to strip header context? diff --git a/libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/shared_ptr_neg.cc b/libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/shared_ptr_neg.cc index 490cfc4cce6..8114531e2d7 100644 --- a/libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/shared_ptr_neg.cc +++ b/libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/assign/shared_ptr_neg.cc @@ -48,4 +48,4 @@ main() } // { dg-error "In member function" "" { target *-*-* } 0 } // { dg-error "cannot convert" "" { target *-*-* } 0 } -// { dg-error "instantiated from" "" { target *-*-* } 0 } +// { dg-error "required from" "" { target *-*-* } 0 } |