131
|
1 // PR c++/80955
|
|
2 // { dg-do run { target c++11 } }
|
|
3
|
|
4 extern "C" int sprintf (char *s, const char *format, ...);
|
|
5 extern "C" int strcmp (const char *s1, const char *s2);
|
|
6
|
|
7 #define __PRI64_PREFIX "l"
|
|
8 #define PRId64 __PRI64_PREFIX "d"
|
|
9
|
|
10 using size_t = decltype(sizeof(0));
|
|
11 #define _zero
|
|
12 #define _ID _xx
|
|
13 int operator""_zero(const char*, size_t) { return 0; }
|
|
14 int operator""_ID(const char*, size_t) { return 0; }
|
|
15
|
|
16 int main()
|
|
17 {
|
|
18 long i64 = 123;
|
|
19 char buf[] = "xxxxxx"__FILE__; // { dg-warning "invalid suffix on literal" }
|
|
20 sprintf(buf, "%"PRId64"abc", i64); // { dg-warning "invalid suffix on literal" }
|
|
21 return strcmp(buf, "123abc")
|
|
22 + ""_zero
|
|
23 + "bob"_zero
|
|
24 + R"#(raw
|
|
25 string)#"_zero
|
|
26 + "xx"_ID
|
|
27 + ""_ID
|
|
28 + R"AA(another
|
|
29 raw
|
|
30 string)AA"_ID;
|
|
31 }
|