1 // { dg-do compile { target c++11 } }
2 
3 //  Test that the standard suffixes shadow any user-defined suffixes of the same name.
4 long double
5 operator"" L(long double x)  // { dg-warning "floating point suffix|shadowed by implementation" }
6 { return x; }
7 
8 unsigned long long int
9 operator"" ULL(unsigned long long int k)  // { dg-warning "integer suffix|shadowed by implementation" }
10 { return k; }
11 
12 long double
13 operator"" l(long double x)  // { dg-warning "floating point suffix|shadowed by implementation" }
14 { return x; }
15 
16 unsigned long long int
17 operator"" ull(unsigned long long int k)  // { dg-warning "integer suffix|shadowed by implementation" }
18 { return k; }
19 
20 //  Namespaces are no hiding place.
21 namespace Long
22 {
23 
24 long double
25 operator"" L(long double x)  // { dg-warning "integer suffix|shadowed by implementation" }
26 { return x; }
27 
28 unsigned long long int
29 operator"" ULL(unsigned long long int k)  // { dg-warning "integer suffix|shadowed by implementation" }
30 { return k; }
31 
32 long double
33 operator"" l(long double x)  // { dg-warning "integer suffix|shadowed by implementation" }
34 { return x; }
35 
36 unsigned long long int
37 operator"" ull(unsigned long long int k)  // { dg-warning "integer suffix|shadowed by implementation" }
38 { return k; }
39 
40 }
41 
42 // { dg-warning "literal operator suffixes not preceded by|are reserved for future standardization" "reserved" { target *-*-* } 5 }
43 // { dg-warning "literal operator suffixes not preceded by|are reserved for future standardization" "reserved" { target *-*-* } 9 }
44 // { dg-warning "literal operator suffixes not preceded by|are reserved for future standardization" "reserved" { target *-*-* } 13 }
45 // { dg-warning "literal operator suffixes not preceded by|are reserved for future standardization" "reserved" { target *-*-* } 17 }
46 // { dg-warning "literal operator suffixes not preceded by|are reserved for future standardization" "reserved" { target *-*-* } 25 }
47 // { dg-warning "literal operator suffixes not preceded by|are reserved for future standardization" "reserved" { target *-*-* } 29 }
48 // { dg-warning "literal operator suffixes not preceded by|are reserved for future standardization" "reserved" { target *-*-* } 33 }
49 // { dg-warning "literal operator suffixes not preceded by|are reserved for future standardization" "reserved" { target *-*-* } 37 }
50