Francois Pichet
bc6ebb5b76
Allow implicit conversion from function pointer to void* in Microsoft mode.
...
Necessary to parse MFC code.
llvm-svn: 131076
2011-05-08 22:52:41 +00:00
Francois Pichet
e900b10a29
Downgrade error "static declaration of 'foo' follows non-static declaration" to a warning in Microsoft mode.
...
llvm-svn: 129985
2011-04-22 08:14:00 +00:00
Francois Pichet
48c946e5ef
In Microsoft mode, within class scope, if a CXXScopeSpec's type is equal to the type of one of the base classes then downgrade the missing typename error to a warning. Up to now this is the only case I found where MSVC doesn't require "typename" at class scope. Really strange!
...
This fixes 1 error when parsing the MSVC 2008 header files.
Example:
template<class T> class A {
public:
typedef int TYPE;
};
template<class T> class B : public A<T> {
public:
A<T>::TYPE a; // no typename required because A<T> is a base class.
};
llvm-svn: 129425
2011-04-13 02:38:49 +00:00
Francois Pichet
53fe2bb29e
MSVC accepts that default parameters be redefined for member functions
...
of template class. The new value is ignored.
This fixes 1 error when parsing MSVC 2010 header files with clang.
llvm-svn: 129240
2011-04-10 03:03:52 +00:00
Francois Pichet
117d23c5bc
Add a triple to make the test friendly on no windows platform.
...
llvm-svn: 128459
2011-03-29 11:38:04 +00:00
Francois Pichet
3096d209bf
Accept __declspec(dllimport) for function defined at class scope in Microsoft mode.
...
This fixes a bunch of errors when compiling MSVC header files with the -DDLL flag.
llvm-svn: 128457
2011-03-29 10:39:17 +00:00
Francois Pichet
13b4e68642
Downgrade err_mismatched_exception_spec to a ExtWarning in Microsoft mode. MSVC doesn't do any validation on exception specifications.
...
This remove 1 error when parsing MSVC stl lib with clang.
llvm-svn: 127961
2011-03-19 23:05:18 +00:00
John McCall
8feeb49662
Semantic checking for exception specifications should be triggered by
...
whether C++ exceptions are enabled, not exceptions in general. PR9358.
llvm-svn: 126820
2011-03-02 02:04:40 +00:00
Douglas Gregor
996a735b88
We need a longer long when testing this pathe Microsoft fixed-underlying-type extension for enumeration types
...
llvm-svn: 126250
2011-02-22 21:42:31 +00:00
Douglas Gregor
a1aec29a2d
Enable enumeration types with a fixed underlying type, e.g.,
...
enum X : long { Value = 0x100000000 };
when in Microsoft-extension mode (-fms-extensions). This (now C++0x)
feature has been supported since Microsoft Visual Studio .NET 2003.
llvm-svn: 126243
2011-02-22 20:32:04 +00:00
Francois Pichet
7d92ee3852
Remove a c++ file test I inadvertently added in Sema last week.
...
llvm-svn: 123608
2011-01-17 01:08:01 +00:00
Francois Pichet
a310806ae5
Microsoft enum extensions. 2 things will change on -fms-extensions:
...
1. enum underlying type is int by default.
2. Error "enumerator value is not representable in the underlying type"is a ExtWarning
llvm-svn: 116704
2010-10-18 15:01:13 +00:00
Francois Pichet
488b4a7d94
Add basic support for Microsoft enum forward declaration.
...
Assigning an underlying integral type to an enum forward declaration will come in a next patch.
llvm-svn: 113716
2010-09-12 05:06:55 +00:00
Francois Pichet
4ad4b58639
Allow type definitions inside anonymous struct/union in Microsoft mode.
...
llvm-svn: 113354
2010-09-08 11:32:25 +00:00
Douglas Gregor
eece0eaa85
Transfer calling-convention attributes down to member function pointers.
...
llvm-svn: 112715
2010-09-01 16:29:03 +00:00
Douglas Gregor
f62c5294c1
Emulate (some of) Microsoft's looser semantic checking of exception
...
specifications, from Martin Vejnar!
llvm-svn: 112482
2010-08-30 15:04:51 +00:00
Douglas Gregor
2b1bbecb6b
Predeclare class type_info in Microsoft mode, from Francois Pichet!
...
llvm-svn: 112478
2010-08-30 14:44:26 +00:00