teak-llvm/clang/test/SemaCXX/wchar_t.cpp
Chris Lattner c548be9ab3 Remove a dead argument to ProcessUCNEscape.
Fix string concatenation to treat escapes in concatenated strings that
are wide because of other string chunks to process the escapes as wide
themselves.  Before we would warn about and miscompile the attached testcase.

This fixes rdar://8040728 - miscompile + warning: hex escape sequence out of range

llvm-svn: 106012
2010-06-15 18:06:43 +00:00

33 lines
633 B
C++

// RUN: %clang_cc1 -fsyntax-only -pedantic -verify %s
wchar_t x;
void f(wchar_t p) {
wchar_t x;
unsigned wchar_t y; // expected-warning {{'wchar_t' cannot be signed or unsigned}}
signed wchar_t z; // expected-warning {{'wchar_t' cannot be signed or unsigned}}
++x;
}
// PR4502
wchar_t const c = L'c';
int a[c == L'c' ? 1 : -1];
// PR5917
template<typename _CharT>
struct basic_string {
};
template<typename _CharT>
basic_string<_CharT> operator+ (const basic_string<_CharT>&, _CharT);
int t(void) {
basic_string<wchar_t>() + L'-';
return (0);
}
// rdar://8040728
wchar_t in[] = L"\x434" "\x434"; // No warning