1 // { dg-do compile { target c++11 } }
2 // { dg-options "" }
3 
4 int
foo()5 foo ()
6 {
7   static int a [[using gnu: unused, used]];	// { dg-warning "attribute using prefix only available" "" { target c++14_down } }
8   int b [[ using foo : bar (2), baz ]];		// { dg-warning "'foo::bar' scoped attribute directive ignored" }
9 						// { dg-warning "'foo::baz' scoped attribute directive ignored" "" { target *-*-* } .-1 }
10 						// { dg-warning "attribute using prefix only available" "" { target c++14_down } .-2 }
11   int c [[ using foo : using ("foo")]];		// { dg-warning "'foo::using' scoped attribute directive ignored" }
12 						// { dg-warning "attribute using prefix only available" "" { target c++14_down } .-1 }
13   b = 0;
14   c = 0;
15   return b + c;
16 }
17 
18 int
bar()19 bar ()
20 {
21   int a [[ using BAR: foo::bar]];		// { dg-error "attribute using prefix used together with scoped attribute token" }
22 						// { dg-warning "ignored" "" { target *-*-* } .-1 }
23 						// { dg-warning "attribute using prefix only available" "" { target c++14_down } .-2 }
24   int b [[ using BAZ: bar(2), bar::bar(3, 4) ]];// { dg-error "attribute using prefix used together with scoped attribute token" }
25 						// { dg-warning "ignored" "" { target *-*-* } .-1 }
26 						// { dg-warning "attribute using prefix only available" "" { target c++14_down } .-2 }
27   a = 0;
28   b = 0;
29   return a + b;
30 }
31 
32 int
baz()33 baz ()
34 {
35   int a [[ using using: using]];		// { dg-warning "attribute using prefix only available" "" { target c++14_down } }
36 						// { dg-warning "'using::using' scoped attribute directive ignored" "" { target *-*-* } .-1 }
37   int b [[ using bitand: bitor, xor]];		// { dg-warning "attribute using prefix only available" "" { target c++14_down } }
38 						// { dg-warning "'bitand::bitor' scoped attribute directive ignored" "" { target *-*-* } .-1 }
39 						// { dg-warning "'bitand::xor' scoped attribute directive ignored" "" { target *-*-* } .-2 }
40   a = 0;
41   b = 0;
42   return a + b;
43 }
44