PR c++/91436 fix C++ dialect for std::make_unique fix-it hint
The std::make_unique function wasn't added until C++14, and neither was the std::complex_literals namespace. gcc/cp: PR c++/91436 * name-lookup.c (get_std_name_hint): Fix min_dialect field for complex_literals and make_unique entries. gcc/testsuite: PR c++/91436 * g++.dg/lookup/missing-std-include-5.C: Limit test to C++14 and up. * g++.dg/lookup/missing-std-include-6.C: Don't check make_unique in test that runs for C++11. * g++.dg/lookup/missing-std-include-8.C: Check make_unique here. From-SVN: r274492
This commit is contained in:
parent
07fd852ff1
commit
07ee59246c
|
@ -1,3 +1,9 @@
|
|||
2019-08-14 Jonathan Wakely <jwakely@redhat.com>
|
||||
|
||||
PR c++/91436
|
||||
* name-lookup.c (get_std_name_hint): Fix min_dialect field for
|
||||
complex_literals and make_unique entries.
|
||||
|
||||
2019-08-14 Jakub Jelinek <jakub@redhat.com>
|
||||
Marek Polacek <polacek@redhat.com>
|
||||
|
||||
|
|
|
@ -5559,7 +5559,7 @@ get_std_name_hint (const char *name)
|
|||
{"bitset", "<bitset>", cxx11},
|
||||
/* <complex>. */
|
||||
{"complex", "<complex>", cxx98},
|
||||
{"complex_literals", "<complex>", cxx98},
|
||||
{"complex_literals", "<complex>", cxx14},
|
||||
/* <condition_variable>. */
|
||||
{"condition_variable", "<condition_variable>", cxx11},
|
||||
{"condition_variable_any", "<condition_variable>", cxx11},
|
||||
|
@ -5632,7 +5632,7 @@ get_std_name_hint (const char *name)
|
|||
{"allocator", "<memory>", cxx98},
|
||||
{"allocator_traits", "<memory>", cxx11},
|
||||
{"make_shared", "<memory>", cxx11},
|
||||
{"make_unique", "<memory>", cxx11},
|
||||
{"make_unique", "<memory>", cxx14},
|
||||
{"shared_ptr", "<memory>", cxx11},
|
||||
{"unique_ptr", "<memory>", cxx11},
|
||||
{"weak_ptr", "<memory>", cxx11},
|
||||
|
|
|
@ -1,3 +1,11 @@
|
|||
2019-08-14 Jonathan Wakely <jwakely@redhat.com>
|
||||
|
||||
PR c++/91436
|
||||
* g++.dg/lookup/missing-std-include-5.C: Limit test to C++14 and up.
|
||||
* g++.dg/lookup/missing-std-include-6.C: Don't check make_unique in
|
||||
test that runs for C++11.
|
||||
* g++.dg/lookup/missing-std-include-8.C: Check make_unique here.
|
||||
|
||||
2019-08-14 Christophe Lyon <christophe.lyon@linaro.org>
|
||||
|
||||
* gcc.c-torture/execute/noinit-attribute.c: Fix typo.
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
// { dg-do compile { target c++14 } }
|
||||
using namespace std::complex_literals; // { dg-error "" }
|
||||
// { dg-message "#include <complex>" "" { target *-*-* } .-1 }
|
||||
|
|
|
@ -11,15 +11,6 @@ void test_make_shared ()
|
|||
// { dg-error "expected primary-expression before '\\)' token" "" { target *-*-* } .-3 }
|
||||
}
|
||||
|
||||
template<class T>
|
||||
void test_make_unique ()
|
||||
{
|
||||
auto p = std::make_unique<T>(); // { dg-error "'make_unique' is not a member of 'std'" }
|
||||
// { dg-message "'#include <memory>'" "" { target *-*-* } .-1 }
|
||||
// { dg-error "expected primary-expression before '>' token" "" { target *-*-* } .-2 }
|
||||
// { dg-error "expected primary-expression before '\\)' token" "" { target *-*-* } .-3 }
|
||||
}
|
||||
|
||||
std::shared_ptr<int> test_shared_ptr; // { dg-error "'shared_ptr' in namespace 'std' does not name a template type" }
|
||||
// { dg-message "'#include <memory>'" "" { target *-*-* } .-1 }
|
||||
|
||||
|
|
|
@ -13,6 +13,15 @@ void test_make_shared ()
|
|||
// { dg-error "expected primary-expression before '\\)' token" "" { target *-*-* } .-3 }
|
||||
}
|
||||
|
||||
template<class T>
|
||||
void test_make_unique ()
|
||||
{
|
||||
std::make_unique<T>(); // { dg-error "'make_unique' is not a member of 'std'" }
|
||||
// { dg-message "'std::make_unique' is only available from C\\+\\+14 onwards" "" { target *-*-* } .-1 }
|
||||
// { dg-error "expected primary-expression before '>' token" "" { target *-*-* } .-2 }
|
||||
// { dg-error "expected primary-expression before '\\)' token" "" { target *-*-* } .-3 }
|
||||
}
|
||||
|
||||
void test_array ()
|
||||
{
|
||||
std::array a; // { dg-error "'array' is not a member of 'std'" }
|
||||
|
|
Loading…
Reference in New Issue