// RUN: clang-cc -std=c++0x -fsyntax-only -verify %s

char const * bad_lit1 = "\u33"; // expected-error{{incomplete universal character name}}
char const * bad_lit2 = "\U0033"; // expected-error{{incomplete universal character name}}
char const * bad_lit3 = "\uD833"; // expected-error{{invalid universal character}}
char const * bad_lit4 = "\U0000d833"; // expected-error{{invalid universal character}}

wchar_t const * bad_wlit1 = L"\u33"; // expected-error{{incomplete universal character name}}
wchar_t const * bad_wlit2 = L"\U0033"; // expected-error{{incomplete universal character name}}
wchar_t const * bad_wlit3 = L"\uD833"; // expected-error{{invalid universal character}}
wchar_t const * bad_wlit4 = L"\U0000d833"; // expected-error{{invalid universal character}}


// C++0x supports a wider range of UCNs than C++98/03 or C99.
// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2170.html
char const * lit1 = "\u0033";
char const * lit2 = "\u0015";
char const * lit3 = "\U00000033";
char const * lit4 = "\U00000015";

wchar_t const * wlit1 = L"\u0033";
wchar_t const * wlit2 = L"\u0015";
wchar_t const * wlit3 = L"\U00000033";
wchar_t const * wlit4 = L"\U00000015";
