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 main()16int 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 } 32