1 // { dg-do compile { target c++11 } } 2 // { dg-options "-Wall" } 3 4 #define A asm volatile ("" : : : "memory") foo()5void foo () throw () {} 6 extern void f1 (decltype (foo) *); // { dg-bogus "mangled name" } 7 void f2 (decltype (foo) *); // { dg-bogus "mangled name" } 8 extern void f3 (decltype (foo) *); // { dg-warning "mangled name" "" { target c++14_down } } 9 void f4 (decltype (foo) *); // { dg-warning "mangled name" "" { target c++14_down } } f5(decltype (foo)*)10void f5 (decltype (foo) *) { A; } // { dg-warning "mangled name" "" { target c++14_down } } f6(decltype (foo)*)11static void f6 (decltype (foo) *) { A; }// { dg-bogus "mangled name" } 12 namespace N { f7(decltype (foo)*)13void f7 (decltype (foo) *) { A; } // { dg-warning "mangled name" "" { target c++14_down } } 14 } 15 namespace { f8(decltype (foo)*)16void f8 (decltype (foo) *) { A; } // { dg-bogus "mangled name" } 17 } bar()18void bar () 19 { 20 f3 (foo); 21 f4 (foo); 22 f5 (foo); 23 f6 (foo); 24 N::f7 (foo); 25 f8 (foo); 26 } 27