aboutsummaryrefslogtreecommitdiff
path: root/test/SemaCXX/MicrosoftCompatibility.cpp
AgeCommit message (Collapse)Author
2012-07-22Allow the parser to recover gracefully if a typename is used to introduce a ↵Francois Pichet
decltype type. In Microsoft mode, we emit a warning instead of an error. This fixes a couple of errors when parsing the MSVC 11 RC headers with clang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160613 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-22char16_t and char32_t are defined via typedef in MSVC 11 RC. So introduce a ↵Francois Pichet
way to disable keywords under Microsoft mode. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160612 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-23In microsoft mode, downgrade pseudo-destructors on void from error to warning.Nico Weber
This matches cl.exe's behavior and fixes PR11791. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148682 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-23Convert file from 60% unix 40% dos line endings to 100% unix line endings.Nico Weber
No other changes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148678 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-23Eli says this should check MicrosoftMode instead.Nico Weber
Also change a || that I accidentally changed to && back to ||. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148677 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-21In Microsoft Mode, disable the C++11 strict integral conversion rules for ↵Francois Pichet
enumerator that were introduced with r148439. Otherwise MSVC headers won't compile in C++ 11 mode. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148642 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-29Change the diagnostics which said 'accepted as an extension' to instead sayRichard Smith
'is an extension'. The former is inappropriate and confusing when building with -Werror/-pedantic-errors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147357 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-15Modify how the -verify flag works. Currently, the verification string andRichard Trieu
diagnostic message are compared. If either is a substring of the other, then no error is given. This gives rise to an unexpected case: // expect-error{{candidate function has different number of parameters}} will match the following error messages from Clang: candidate function has different number of parameters (expected 1 but has 2) candidate function has different number of parameters It will also match these other error messages: candidate function function has different number of parameters number of parameters This patch will change so that the verification string must be a substring of the diagnostic message before accepting. Also, all the failing tests from this change have been corrected. Some stats from this cleanup: 87 - removed extra spaces around verification strings 70 - wording updates to diagnostics 40 - extra leading or trailing characters (typos, unmatched parens or quotes) 35 - diagnostic level was included (error:, warning:, or note:) 18 - flag name put in the warning (-Wprotocol) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146619 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-11Move "Unqualified lookup into dependent bases of class templates" Microsoft ↵Francois Pichet
specific behavior from -fms-extensions to -fms-compatibility. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144341 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-20Add -Wc++98-compat diagnostics for jumps which bypass initialization of non-PODRichard Smith
but trivially constructible and destructible variables in C++11 mode. Also incidentally improve the precision of the wording for jump diagnostics in C++98 mode. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142619 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-11[Microsoft] If -fms-compatibility, then downgrade missing typename error to ↵Francois Pichet
warning at function prototype scope. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141630 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-24[microsoft] In Microsoft mode, if we are inside a template class member ↵Francois Pichet
function and we can't resolve an identifier then assume the identifier is type dependent. The goal is to postpone name lookup to instantiation time to be able to search into type dependent base classes. This fixes a few errors when parsing MFC code with clang. BTW clang trunk is now about 5 patches away to be able the parse the default wizard-generated MFC project. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140452 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-21[microsoft] Move missing typename warning from -fms-extensions to ↵Francois Pichet
-fms-compatibility. Also allow the missing typename warning at function scope. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140240 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-20Move Microsoft access specifier bug emulation from -fms-extensions to ↵Francois Pichet
-fm-compatibility. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140189 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-18Move the "jump bypasses variable initialization" error -> warning downgrade ↵Francois Pichet
from -fms-extensions to -fms-compatibility. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140008 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-18In Microsoft mode(-fms-compatibility), prefer an integral conversion to a ↵Francois Pichet
floating-to-integral conversion if the integral conversion is between types of the same size. For example: void f(float); void f(int); int main { long a; f(a); } Here, MSVC will call f(int) instead of generating a compile error as clang will do in standard mode. This fixes a few errors when parsing MFC code with clang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140007 91177308-0d34-0410-b5e6-96231b3b80d8