diff options
author | Jakub Jelinek <jakub@redhat.com> | 2016-11-10 18:04:06 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2016-11-10 18:04:06 +0100 |
commit | 0569479efa2b65ce9e08e24d452d0619d60afd95 (patch) | |
tree | 32c3e777e9cf39f4bb4dd9103341d64adaee2d9e /gcc | |
parent | 37a16493e4e8f312da299f678b20b45c1815b537 (diff) | |
download | gcc-0569479efa2b65ce9e08e24d452d0619d60afd95.zip gcc-0569479efa2b65ce9e08e24d452d0619d60afd95.tar.gz gcc-0569479efa2b65ce9e08e24d452d0619d60afd95.tar.bz2 |
mangle.c (mangle_decl): Only emit -Wc++1z-compat warnings for public or external symbols.
* mangle.c (mangle_decl): Only emit -Wc++1z-compat warnings for
public or external symbols.
* g++.dg/cpp1z/noexcept-type14.C: New test.
* g++.dg/asan/asan_test.C: Remove -Wno-c++1z-compat from dg-options.
From-SVN: r242042
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/mangle.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/asan/asan_test.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp1z/noexcept-type14.C | 26 |
5 files changed, 39 insertions, 2 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 49561fc..b19a236 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2016-11-10 Jakub Jelinek <jakub@redhat.com> + + * mangle.c (mangle_decl): Only emit -Wc++1z-compat warnings for + public or external symbols. + 2016-11-09 Jakub Jelinek <jakub@redhat.com> PR c++/78283 diff --git a/gcc/cp/mangle.c b/gcc/cp/mangle.c index 2dcec3b..be7b72b 100644 --- a/gcc/cp/mangle.c +++ b/gcc/cp/mangle.c @@ -3836,7 +3836,8 @@ mangle_decl (const tree decl) } SET_DECL_ASSEMBLER_NAME (decl, id); - if (G.need_cxx1z_warning) + if (G.need_cxx1z_warning + && (TREE_PUBLIC (decl) || DECL_REALLY_EXTERN (decl))) warning_at (DECL_SOURCE_LOCATION (decl), OPT_Wc__1z_compat, "mangled name for %qD will change in C++17 because the " "exception specification is part of a function type", diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 5028157..7c13172 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2016-11-10 Jakub Jelinek <jakub@redhat.com> + + * g++.dg/cpp1z/noexcept-type14.C: New test. + * g++.dg/asan/asan_test.C: Remove -Wno-c++1z-compat from dg-options. + 2016-11-10 James Greenhalgh <james.greenhalgh@arm.com> * gcc.dg/torture/fp-int-convert.h (M_OK2): New, use it in diff --git a/gcc/testsuite/g++.dg/asan/asan_test.C b/gcc/testsuite/g++.dg/asan/asan_test.C index ba6f6a3..5c24260 100644 --- a/gcc/testsuite/g++.dg/asan/asan_test.C +++ b/gcc/testsuite/g++.dg/asan/asan_test.C @@ -2,7 +2,7 @@ // { dg-skip-if "" { *-*-* } { "*" } { "-O2" } } // { dg-skip-if "" { *-*-* } { "-flto" } { "" } } // { dg-additional-sources "asan_globals_test-wrapper.cc" } -// { dg-options "-std=c++11 -fsanitize=address -fno-builtin -Wall -Wno-c++1z-compat -Werror -g -DASAN_UAR=0 -DASAN_HAS_EXCEPTIONS=1 -DASAN_HAS_BLACKLIST=0 -DSANITIZER_USE_DEJAGNU_GTEST=1 -lasan -lpthread -ldl" } +// { dg-options "-std=c++11 -fsanitize=address -fno-builtin -Wall -Werror -g -DASAN_UAR=0 -DASAN_HAS_EXCEPTIONS=1 -DASAN_HAS_BLACKLIST=0 -DSANITIZER_USE_DEJAGNU_GTEST=1 -lasan -lpthread -ldl" } // { dg-additional-options "-DASAN_NEEDS_SEGV=1" { target { ! arm*-*-* } } } // { dg-additional-options "-DASAN_LOW_MEMORY=1 -DASAN_NEEDS_SEGV=0" { target arm*-*-* } } // { dg-additional-options "-DASAN_AVOID_EXPENSIVE_TESTS=1" { target { ! run_expensive_tests } } } diff --git a/gcc/testsuite/g++.dg/cpp1z/noexcept-type14.C b/gcc/testsuite/g++.dg/cpp1z/noexcept-type14.C new file mode 100644 index 0000000..a6aeb1c --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp1z/noexcept-type14.C @@ -0,0 +1,26 @@ +// { dg-do compile { target c++11 } } +// { dg-options "-Wall" } + +#define A asm volatile ("" : : : "memory") +void foo () throw () {} +extern void f1 (decltype (foo) *); // { dg-bogus "mangled name" } +void f2 (decltype (foo) *); // { dg-bogus "mangled name" } +extern void f3 (decltype (foo) *); // { dg-warning "mangled name" "" { target c++14_down } } +void f4 (decltype (foo) *); // { dg-warning "mangled name" "" { target c++14_down } } +void f5 (decltype (foo) *) { A; } // { dg-warning "mangled name" "" { target c++14_down } } +static void f6 (decltype (foo) *) { A; }// { dg-bogus "mangled name" } +namespace N { +void f7 (decltype (foo) *) { A; } // { dg-warning "mangled name" "" { target c++14_down } } +} +namespace { +void f8 (decltype (foo) *) { A; } // { dg-bogus "mangled name" } +} +void bar () +{ + f3 (foo); + f4 (foo); + f5 (foo); + f6 (foo); + N::f7 (foo); + f8 (foo); +} |