History log of /llvm-project/clang/test/SemaCXX/nested-name-spec.cpp (Results 76 – 93 of 93)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 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


1234