#
a28908d5 |
| 25-Mar-2009 |
Anders Carlsson <andersca@mac.com> |
Tighten the setAccess assert. We now allow AS_none if the decl contex is not a C++ record decl.
Also, fix fallout from the change.
llvm-svn: 67717
|
#
75fdaa46 |
| 25-Mar-2009 |
Anders Carlsson <andersca@mac.com> |
Improve handling of base initializers. We now parse initializers in out of line decls, such as:
class C { C() { } int a; };
C::C() : a(10) { }
We also diagnose when initializers are u
Improve handling of base initializers. We now parse initializers in out of line decls, such as:
class C { C() { } int a; };
C::C() : a(10) { }
We also diagnose when initializers are used on declarations that aren't constructors:
t.cpp:1:10: error: only constructors take base initializers void f() : a(10) { } ^
Doug and/or Sebastian: I'd appreciate a review, especially the nested-name-spec test results (from the looks of it we now match gcc in that test.)
llvm-svn: 67672
show more ...
|
#
a45cf5b6 |
| 24-Mar-2009 |
Daniel Dunbar <daniel@zuster.org> |
Rename clang to clang-cc.
Tests and drivers updated, still need to shuffle dirs.
llvm-svn: 67602
|
#
f4f296de |
| 23-Mar-2009 |
Douglas Gregor <dgregor@apple.com> |
Template instantiation for the declarations of member functions within a class template. At present, we can only instantiation normal methods, but not constructors, destructors, or conversion operato
Template instantiation for the declarations of member functions within a class template. At present, we can only instantiation normal methods, but not constructors, destructors, or conversion operators.
As ever, this contains a bit of refactoring in Sema's type-checking. In particular:
- Split ActOnFunctionDeclarator into ActOnFunctionDeclarator (handling the declarator itself) and CheckFunctionDeclaration (checking for the the function declaration), the latter of which is also used by template instantiation. - We were performing the adjustment of function parameter types in three places; collect those into a single new routine. - When the type of a parameter is adjusted, allocate an OriginalParmVarDecl to keep track of the type as it was written. - Eliminate a redundant check for out-of-line declarations of member functions; hide more C++-specific checks on function declarations behind if(getLangOptions().CPlusPlus).
llvm-svn: 67575
show more ...
|
#
04e9a03e |
| 11-Mar-2009 |
Douglas Gregor <dgregor@apple.com> |
Fix various problems with matching out-of-line definitions of static class members to the corresponding in-class declaration.
Diagnose the erroneous use of 'static' on out-of-line definitions of cla
Fix various problems with matching out-of-line definitions of static class members to the corresponding in-class declaration.
Diagnose the erroneous use of 'static' on out-of-line definitions of class members.
llvm-svn: 66740
show more ...
|
#
26897467 |
| 11-Mar-2009 |
Douglas Gregor <dgregor@apple.com> |
Add basic, hackish support for instantiation of typedefs in a class template. More importantly, start to sort out the issues regarding complete types and nested-name-specifiers, especially the questi
Add basic, hackish support for instantiation of typedefs in a class template. More importantly, start to sort out the issues regarding complete types and nested-name-specifiers, especially the question of: when do we instantiate a class template specialization that occurs to the left of a '::' in a nested-name-specifier?
llvm-svn: 66662
show more ...
|
#
c2fd626c |
| 06-Mar-2009 |
Douglas Gregor <dgregor@apple.com> |
Improve recovery from ill-formed scope specifiers. Fixes PR3670.
llvm-svn: 66286
|
Revision tags: llvmorg-2.5.0 |
|
#
aa400d83 |
| 08-Feb-2009 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Make the test cases failing due to exact diagnostic matching XFAIL.
llvm-svn: 64080
|
#
8af63e42 |
| 06-Feb-2009 |
Douglas Gregor <dgregor@apple.com> |
Diagnose attempts to define a namespace member out-of-line when no matching member exists. Thanks to Piotr Rak for reporting the problem!
llvm-svn: 63939
|
#
1dc9826a |
| 26-Dec-2008 |
Douglas Gregor <dgregor@apple.com> |
Add support for out-of-line definitions of conversion functions and member operators
llvm-svn: 61442
|
#
19500291 |
| 16-Dec-2008 |
Douglas Gregor <dgregor@apple.com> |
Partial fix for qualified name lookup, such that the lookup of N in N::X only skips those entities specified in C++ [basic.lookup.qual]p1.
Note that both EDG and GCC currently get this wrong. EDG ha
Partial fix for qualified name lookup, such that the lookup of N in N::X only skips those entities specified in C++ [basic.lookup.qual]p1.
Note that both EDG and GCC currently get this wrong. EDG has confirmed that the bug will be fixed in a future version.
llvm-svn: 61079
show more ...
|
#
ad590506 |
| 15-Dec-2008 |
Douglas Gregor <dgregor@apple.com> |
Diagnose erroneous uses of out-of-line member definitions and scope specifiers. Specifically: * Determine when an out-of-line function definition does not match any declaration within the clas
Diagnose erroneous uses of out-of-line member definitions and scope specifiers. Specifically: * Determine when an out-of-line function definition does not match any declaration within the class or namespace (including coping with overloaded functions). * Complain about typedefs and parameters that have scope specifiers. * Complain about out-of-line declarations that aren't also definitions. * Complain about non-static data members being declared out-of-line. * Allow cv-qualifiers on out-of-line member function definitions.
llvm-svn: 61058
show more ...
|
#
03c4041c |
| 23-Nov-2008 |
Chris Lattner <sabre@nondot.org> |
make the 'to match this' diagnostic a note.
llvm-svn: 59921
|
#
f7e69d5a |
| 23-Nov-2008 |
Chris Lattner <sabre@nondot.org> |
add support for inserting a DeclarationName into a diagnostic directly without calling getAsString(). This implicitly puts quotes around the name, so diagnostics need to be tweaked to accommodate th
add support for inserting a DeclarationName into a diagnostic directly without calling getAsString(). This implicitly puts quotes around the name, so diagnostics need to be tweaked to accommodate this.
llvm-svn: 59916
show more ...
|
#
0d09c494 |
| 19-Nov-2008 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Take care another assert:
struct A { struct B; };
struct A::B { void m() {} // Assertion failed: getContainingDC(DC) == CurContext && "The next DeclContext should be lexically contained in the
Take care another assert:
struct A { struct B; };
struct A::B { void m() {} // Assertion failed: getContainingDC(DC) == CurContext && "The next DeclContext should be lexically contained in the current one." };
Introduce DeclContext::getLexicalParent which may be different from DeclContext::getParent when nested-names are involved, e.g:
namespace A { struct S; } struct A::S {}; // getParent() == namespace 'A' // getLexicalParent() == translation unit
llvm-svn: 59650
show more ...
|
#
89709ac2 |
| 19-Nov-2008 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Fix this:
With this snippet: void f(a::b);
An assert is hit: Assertion failed: CachedTokens[CachedLexPos-1].getLocation() == Tok.getAnnotationEndLoc() && "The annotation should be until the most
Fix this:
With this snippet: void f(a::b);
An assert is hit: Assertion failed: CachedTokens[CachedLexPos-1].getLocation() == Tok.getAnnotationEndLoc() && "The annotation should be until the most recent cached token", file ..\..\lib\Lex\PPCaching.cpp, line 98
Introduce Preprocessor::RevertCachedTokens that reverts a specific number of tokens when backtracking is enabled.
llvm-svn: 59636
show more ...
|
Revision tags: llvmorg-2.4.0 |
|
#
9e59b577 |
| 09-Nov-2008 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Introduce ScopedDecl::getLexicalDeclContext() which is different from ScopedDecl::getDeclContext() when there are nested-names. e.g.: namespace A { void f(); // SemanticDC (getDeclContext) == L
Introduce ScopedDecl::getLexicalDeclContext() which is different from ScopedDecl::getDeclContext() when there are nested-names. e.g.: namespace A { void f(); // SemanticDC (getDeclContext) == LexicalDC (getLexicalDeclContext) == 'namespace A' } void A::f(); // SemanticDC == namespace 'A' // LexicalDC == global namespace
llvm-svn: 58948
show more ...
|
#
16ac9be7 |
| 08-Nov-2008 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Implement Sema support for C++ nested-name-specifiers.
llvm-svn: 58916
|