Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/ext/attr-nothrow-3.C @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | |
children |
line wrap: on
line source
/* PR c++/84294 - attributes on a function template redeclaration silently discarded { dg-do compile } { dg-options "-O -fdump-tree-eh -fdump-tree-optimized" } */ typedef void Func (); template <Func> void fail_func () throw (); template <Func test> void test_func () throw () { try { test (); } catch (...) { // Should be eliminated. fail_func<test> (); } } void __attribute__ ((nothrow)) func_nothrow_none (); void func_nothrow_none (); template void test_func<func_nothrow_none>(); void func_none_nothrow (); void __attribute__ ((nothrow)) func_none_nothrow (); template void test_func<func_none_nothrow>(); template <class> void __attribute__ ((nothrow)) templ_nothrow_none (); template <class> void templa_nothrow_none (); template void test_func<templ_nothrow_none<int> >(); template <class> void templ_none_nothrow (); template <class> void __attribute__ ((nothrow)) templ_none_nothrow (); template void test_func<templ_none_nothrow<int> >(); // Verify that no exception handling code was emitted. // { dg-final { scan-tree-dump-not "eh_dispatch" "eh" } } // { dg-final { scan-tree-dump-not "resx" "eh" } } // Verify that calls to fail_func() specializations have been eliminated. // { dg-final { scan-tree-dump-not "fail_func" "optimized" } }