Get the type right for wide string literals; it's wchar_t, not char.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51586 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Eli Friedman 2008-05-27 07:57:14 +00:00
Родитель 3e4177f233
Коммит 8ef1f26775
2 изменённых файлов: 4 добавлений и 1 удалений

Просмотреть файл

@ -51,7 +51,7 @@ Sema::ActOnStringLiteral(const Token *StringToks, unsigned NumStringToks) {
StringToks[NumStringToks-1].getLocation()));
QualType StrTy = Context.CharTy;
// FIXME: handle wchar_t
if (Literal.AnyWide) StrTy = Context.getWcharType();
if (Literal.Pascal) StrTy = Context.UnsignedCharTy;
// Get an array type for the string, according to C99 6.4.5. This includes

3
test/Sema/wchar_size.c Normal file
Просмотреть файл

@ -0,0 +1,3 @@
// RUN: clang %s -fsyntax-only -verify -triple=i686-apple-darwin9
int check_wchar_size[sizeof(*L"") == 4 ? 1 : -1];