| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
| |
in 64-bit mode (ie: when _M_IA64 or _M_AMD64 is defined)
more info: http://msdn.microsoft.com/en-us/library/ms177389.aspx
llvm-svn: 137935
|
|
|
|
| |
llvm-svn: 132387
|
|
|
|
|
|
| |
pointed out a better/simpler way to do it.
llvm-svn: 132369
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
declaration if the tag name is not already declared. The tag name is declared in the next outermost non record scope.
Example:
class A {
friend class B;
B* b;
};
B* global_b;
llvm-svn: 132332
|
|
|
|
| |
llvm-svn: 131950
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
declaration found is unaccessible (private) and that declaration was bring into scope via another using declaration whose target declaration is accessible (public) then no error is generated.
Example:
class A { public: int f(); };
class B : public A { private: using A::f; };
class C : public B { private: using B::f; };
Here, B::f is private so this should fail in Standard C++, but because B::f refers to A::f which is public MSVC accepts it.
This fixes 1 error when parsing MFC code with clang.
llvm-svn: 131896
|
|
|
|
|
|
|
|
|
|
|
|
| |
template<class U>
struct X1 {
template<class T> void f(T*);
template<> void f(int*) { }
};
Won't be so simple. I need to think more about it.
llvm-svn: 131362
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
scope.
Necessary to parse MFC and MSVC standard lib code.
Example:
struct X {
template<class T> void f(T) { }
template<> void f(int) { }
}
llvm-svn: 131347
|
|
|
|
|
|
|
|
|
|
|
| |
what size the integral type is. Necessary to parse MFC code.
Example:
void f(char *ptr) {
char var = (char)ptr;
}
llvm-svn: 131201
|
|
|
|
| |
llvm-svn: 131077
|
|
|
|
|
|
| |
Necessary to parse MFC code.
llvm-svn: 131076
|
|
|
|
|
|
| |
to a warning in Microsoft mode.
llvm-svn: 129985
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
of template class. The new value is ignored.
This fixes 1 error when parsing MSVC 2010 header files with clang.
llvm-svn: 129240
|
|
|
|
| |
llvm-svn: 128459
|
|
|
|
|
|
|
|
| |
Microsoft mode.
This fixes a bunch of errors when compiling MSVC header files with the -DDLL flag.
llvm-svn: 128457
|
|
|
|
|
|
|
|
| |
MSVC doesn't do any validation on exception specifications.
This remove 1 error when parsing MSVC stl lib with clang.
llvm-svn: 127961
|
|
|
|
|
|
| |
whether C++ exceptions are enabled, not exceptions in general. PR9358.
llvm-svn: 126820
|
|
|
|
|
|
| |
fixed-underlying-type extension for enumeration types
llvm-svn: 126250
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 123608
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Assigning an underlying integral type to an enum forward declaration will come in a next patch.
llvm-svn: 113716
|
|
|
|
| |
llvm-svn: 113354
|
|
|
|
| |
llvm-svn: 112715
|
|
|
|
|
|
| |
specifications, from Martin Vejnar!
llvm-svn: 112482
|
|
llvm-svn: 112478
|