diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/cpp0x/udlit-macros.C')
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/udlit-macros.C | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/cpp0x/udlit-macros.C b/gcc/testsuite/g++.dg/cpp0x/udlit-macros.C new file mode 100644 index 00000000000..fb518281811 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/udlit-macros.C @@ -0,0 +1,31 @@ +// PR c++/80955 +// { dg-do run { target c++11 } } + +extern "C" int sprintf (char *s, const char *format, ...); +extern "C" int strcmp (const char *s1, const char *s2); + +#define __PRI64_PREFIX "l" +#define PRId64 __PRI64_PREFIX "d" + +using size_t = decltype(sizeof(0)); +#define _zero +#define _ID _xx +int operator""_zero(const char*, size_t) { return 0; } +int operator""_ID(const char*, size_t) { return 0; } + +int main() +{ + long i64 = 123; + char buf[100]; + sprintf(buf, "%"PRId64"abc", i64); // { dg-warning "invalid suffix on literal" } + return strcmp(buf, "123abc") + + ""_zero + + "bob"_zero + + R"#(raw + string)#"_zero + + "xx"_ID + + ""_ID + + R"AA(another + raw + string)AA"_ID; +} |