19fcce65e7e1307b5b8da9be13e4092d6bb94dc1dRichard Smith// RUN: %clang_cc1 -std=c++11 -ast-print %s | FileCheck %s 29fcce65e7e1307b5b8da9be13e4092d6bb94dc1dRichard Smith 387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: auto operator""_foo(const char *p, decltype(sizeof(int))) -> decltype(nullptr); 49fcce65e7e1307b5b8da9be13e4092d6bb94dc1dRichard Smithauto operator"" _foo(const char *p, decltype(sizeof(int))) -> decltype(nullptr); 59fcce65e7e1307b5b8da9be13e4092d6bb94dc1dRichard Smith 687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: decltype(""_foo) operator""_bar(unsigned long long); 7916883004c36291b70355d5e73abb05e138804fbRichard Smithdecltype(""_foo) operator"" _bar(unsigned long long); 8916883004c36291b70355d5e73abb05e138804fbRichard Smith 987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: decltype(42_bar) operator""_baz(long double); 10916883004c36291b70355d5e73abb05e138804fbRichard Smithdecltype(42_bar) operator"" _baz(long double); 11916883004c36291b70355d5e73abb05e138804fbRichard Smith 1287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: decltype(4.5_baz) operator""_baz(char); 13ef9f29804fa8932282a17b414ef0dde2ea4eec03Richard Smithdecltype(4.5_baz) operator"" _baz(char); 14ef9f29804fa8932282a17b414ef0dde2ea4eec03Richard Smith 1587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: const char *operator""_quux(const char *); 16ef9f29804fa8932282a17b414ef0dde2ea4eec03Richard Smithconst char *operator"" _quux(const char *); 17ef9f29804fa8932282a17b414ef0dde2ea4eec03Richard Smith 1887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: template <char ...> const char *operator""_fritz(); 19ef9f29804fa8932282a17b414ef0dde2ea4eec03Richard Smithtemplate<char...> const char *operator"" _fritz(); 20ef9f29804fa8932282a17b414ef0dde2ea4eec03Richard Smith 219fcce65e7e1307b5b8da9be13e4092d6bb94dc1dRichard Smith// CHECK: const char *p1 = "bar1"_foo; 229fcce65e7e1307b5b8da9be13e4092d6bb94dc1dRichard Smithconst char *p1 = "bar1"_foo; 239fcce65e7e1307b5b8da9be13e4092d6bb94dc1dRichard Smith// CHECK: const char *p2 = "bar2"_foo; 249fcce65e7e1307b5b8da9be13e4092d6bb94dc1dRichard Smithconst char *p2 = R"x(bar2)x"_foo; 259fcce65e7e1307b5b8da9be13e4092d6bb94dc1dRichard Smith// CHECK: const char *p3 = u8"bar3"_foo; 269fcce65e7e1307b5b8da9be13e4092d6bb94dc1dRichard Smithconst char *p3 = u8"bar3"_foo; 27916883004c36291b70355d5e73abb05e138804fbRichard Smith// CHECK: const char *p4 = 297_bar; 28916883004c36291b70355d5e73abb05e138804fbRichard Smithconst char *p4 = 0x129_bar; 29916883004c36291b70355d5e73abb05e138804fbRichard Smith// CHECK: const char *p5 = 1.0E+12_baz; 30916883004c36291b70355d5e73abb05e138804fbRichard Smithconst char *p5 = 1e12_baz; 31ef9f29804fa8932282a17b414ef0dde2ea4eec03Richard Smith// CHECK: const char *p6 = 'x'_baz; 32ef9f29804fa8932282a17b414ef0dde2ea4eec03Richard Smithconst char *p6 = 'x'_baz; 33ef9f29804fa8932282a17b414ef0dde2ea4eec03Richard Smith// CHECK: const char *p7 = 123_quux; 34ef9f29804fa8932282a17b414ef0dde2ea4eec03Richard Smithconst char *p7 = 123_quux; 35ef9f29804fa8932282a17b414ef0dde2ea4eec03Richard Smith// CHECK: const char *p8 = 4.9_quux; 36ef9f29804fa8932282a17b414ef0dde2ea4eec03Richard Smithconst char *p8 = 4.9_quux; 37ef9f29804fa8932282a17b414ef0dde2ea4eec03Richard Smith// CHECK: const char *p9 = 0x42e3F_fritz; 38ef9f29804fa8932282a17b414ef0dde2ea4eec03Richard Smithconst char *p9 = 0x42e3F_fritz; 39ef9f29804fa8932282a17b414ef0dde2ea4eec03Richard Smith// CHECK: const char *p10 = 3.300e+15_fritz; 40ef9f29804fa8932282a17b414ef0dde2ea4eec03Richard Smithconst char *p10 = 3.300e+15_fritz; 4158878f85ab89b13e9eea4af3ccf055e42c557bc8Pirama Arumuga Nainar 4258878f85ab89b13e9eea4af3ccf055e42c557bc8Pirama Arumuga Nainartemplate <class C, C...> const char *operator"" _suffix(); 4387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// CHECK: const char *PR23120 = operator""_suffix<char32_t, 66615>(); 4458878f85ab89b13e9eea4af3ccf055e42c557bc8Pirama Arumuga Nainarconst char *PR23120 = U""_suffix; 4558878f85ab89b13e9eea4af3ccf055e42c557bc8Pirama Arumuga Nainar 46684aa73192d92850a926870be62a1787eb5b7ed9Michael Han// CHECK: ; 47684aa73192d92850a926870be62a1787eb5b7ed9Michael Han; 486980f17c78442a7db80d98902932ef047930284aMichael Han// CHECK-NOT: ; 49dc17384581e37436582a007be4d9185bcf7003ecEnea Zaffanella 50dc17384581e37436582a007be4d9185bcf7003ecEnea Zaffanella 51