1*f4a2713aSLionel Sambuc // RUN: %clang_cc1 -verify -std=c++11 %s 2*f4a2713aSLionel Sambuc 3*f4a2713aSLionel Sambuc char c00 = '\u0000'; // ok 4*f4a2713aSLionel Sambuc char c01 = '\u0001'; // ok 5*f4a2713aSLionel Sambuc char c1f = '\u001f'; // ok 6*f4a2713aSLionel Sambuc char c20 = '\u0020'; // ' ', ok 7*f4a2713aSLionel Sambuc char c22 = '\u0022'; // ", ok 8*f4a2713aSLionel Sambuc char c23 = '\u0023'; // #, ok 9*f4a2713aSLionel Sambuc char c24 = '\u0024'; // $, ok 10*f4a2713aSLionel Sambuc char c25 = '\u0025'; // %, ok 11*f4a2713aSLionel Sambuc char c27 = '\u0027'; // ', ok 12*f4a2713aSLionel Sambuc char c3f = '\u003f'; // ?, ok 13*f4a2713aSLionel Sambuc char c40 = '\u0040'; // @, ok 14*f4a2713aSLionel Sambuc char c41 = '\u0041'; // A, ok 15*f4a2713aSLionel Sambuc char c5f = '\u005f'; // _, ok 16*f4a2713aSLionel Sambuc char c60 = '\u0060'; // `, ok 17*f4a2713aSLionel Sambuc char c7e = '\u007e'; // ~, ok 18*f4a2713aSLionel Sambuc char c7f = '\u007f'; // ok 19*f4a2713aSLionel Sambuc 20*f4a2713aSLionel Sambuc wchar_t w007f = L'\u007f'; 21*f4a2713aSLionel Sambuc wchar_t w0080 = L'\u0080'; 22*f4a2713aSLionel Sambuc wchar_t w009f = L'\u009f'; 23*f4a2713aSLionel Sambuc wchar_t w00a0 = L'\u00a0'; 24*f4a2713aSLionel Sambuc 25*f4a2713aSLionel Sambuc wchar_t wd799 = L'\ud799'; 26*f4a2713aSLionel Sambuc wchar_t wd800 = L'\ud800'; // expected-error {{invalid universal character}} 27*f4a2713aSLionel Sambuc wchar_t wdfff = L'\udfff'; // expected-error {{invalid universal character}} 28*f4a2713aSLionel Sambuc wchar_t we000 = L'\ue000'; 29*f4a2713aSLionel Sambuc 30*f4a2713aSLionel Sambuc char32_t w10fffe = U'\U0010fffe'; 31*f4a2713aSLionel Sambuc char32_t w10ffff = U'\U0010ffff'; 32*f4a2713aSLionel Sambuc char32_t w110000 = U'\U00110000'; // expected-error {{invalid universal character}} 33*f4a2713aSLionel Sambuc 34*f4a2713aSLionel Sambuc const char *p1 = "\u0000\u0001\u001f\u0020\u0022\u0023\u0024\u0025\u0027\u003f\u0040\u0041\u005f\u0060\u007e\u007f"; 35*f4a2713aSLionel Sambuc const wchar_t *p2 = L"\u0000\u0012\u004e\u007f\u0080\u009f\u00a0\ud799\ue000"; 36*f4a2713aSLionel Sambuc const char *p3 = u8"\u0000\u0012\u004e\u007f\u0080\u009f\u00a0\ud799\ue000"; 37*f4a2713aSLionel Sambuc const char16_t *p4 = u"\u0000\u0012\u004e\u007f\u0080\u009f\u00a0\ud799\ue000"; 38*f4a2713aSLionel Sambuc const char32_t *p5 = U"\u0000\u0012\u004e\u007f\u0080\u009f\u00a0\ud799\ue000"; 39*f4a2713aSLionel Sambuc const wchar_t *p6 = L"foo \U00110000 bar"; // expected-error {{invalid universal character}} 40*f4a2713aSLionel Sambuc const char *p7 = u8"foo \U0000d800 bar"; // expected-error {{invalid universal character}} 41*f4a2713aSLionel Sambuc const char16_t *p8 = u"foo \U0000dfff bar"; // expected-error {{invalid universal character}} 42*f4a2713aSLionel Sambuc const char32_t *p9 = U"foo \U0010ffff bar"; // ok 43