]> granicus.if.org Git - clang/commit
In Microsoft mode, force 64 bit hex integer constants to signed type if the LL or...
authorFrancois Pichet <pichet2000@gmail.com>
Tue, 11 Jan 2011 12:23:00 +0000 (12:23 +0000)
committerFrancois Pichet <pichet2000@gmail.com>
Tue, 11 Jan 2011 12:23:00 +0000 (12:23 +0000)
commita15a5eede90e41ce1bf49ecc42d54895dfd86d15
treea0d7c261f6b0e525954cd992a26c9e20b0021034
parentd062b604548be6e2f85f6f63a461702e5ea14115
In Microsoft mode, force 64 bit hex integer constants to signed type if the LL or i64 suffix is used. This MSVC behavior.

For example:

void f(long long){ printf("long long"); }
void f(unsigned long long) { printf("unsigned long long"); }
int main() {
   f(0xffffffffffffffffLL);
}
Will print "long long" using MSVC.

This patch also fixes 16 compile errors related to overloading issues when parsing the MSVC 2008 C++ standard lib.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123231 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Sema/SemaExpr.cpp
test/Sema/MicrosoftExtensions.cpp [new file with mode: 0644]