| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
involve qualified names, e.g., x->Base::f. We now maintain enough
information in the AST to compare the results of the name lookup of
"Base" in the scope of the postfix-expression (determined at template
definition time) and in the type of the object expression.
llvm-svn: 80953
|
| |
|
|
|
|
|
| |
as referecned with location where they are used. Still
need to look at destructor aspects of them.
llvm-svn: 80950
|
| |
|
|
|
|
|
|
| |
reference/const data members when user has declared
the constructor. This necessitated some non-minor
refactoring.
llvm-svn: 80934
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
t->Base::f
where t has a dependent type. We save the nested-name-specifier in the
CXXUnresolvedMemberExpr then, during instantiation, substitute into
the nested-name-specifier with the (transformed) object type of t, so
that we get name lookup into the type of the object expression.
Note that we do not yet retain information about name lookup into the
lexical scope of the member access expression, so several regression
tests are still disabled.
llvm-svn: 80925
|
| |
|
|
|
|
|
|
|
|
|
| |
1) Issue digsnostics in non-fragile ABI, when an expression
evaluates to an interface type (except when it is used to
access a non-fragile ivar).
2) Issue unsupported error in fragile ABI when an expression
evaluates to an interface type (except when it is used to
access a fragile ivar).
llvm-svn: 80860
|
| |
|
|
|
|
|
|
| |
with to properly support member access expressions in templates. This
test is XFAIL'd, because we get it completely wrong, but I've made the
minimal changes to the representation to at least avoid a crash.
llvm-svn: 80856
|
| |
|
|
|
|
| |
must be defined. Fixed pr4853.
llvm-svn: 80846
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
x->Base::f
We no longer try to "enter" the context of the type that "x" points
to. Instead, we drag that object type through the parser and pass it
into the Sema routines that need to know how to perform lookup within
member access expressions.
We now implement most of the crazy name lookup rules in C++
[basic.lookup.classref] for non-templated code, including performing
lookup both in the context of the type referred to by the member
access and in the scope of the member access itself and then detecting
ambiguities when the two lookups collide (p1 and p4; p3 and p7 are
still TODO). This change also corrects our handling of name lookup
within template arguments of template-ids inside the
nested-name-specifier (p6; we used to look into the scope of the
object expression for them) and fixes PR4703.
I have disabled some tests that involve member access expressions
where the object expression has dependent type, because we don't yet
have the ability to describe dependent nested-name-specifiers starting
with an identifier.
llvm-svn: 80843
|
| |
|
|
| |
llvm-svn: 80840
|
| |
|
|
|
|
| |
weren't casting from the union type to the initializer type correctly).
llvm-svn: 80837
|
| |
|
|
|
|
| |
an interface pointer.
llvm-svn: 80836
|
| |
|
|
| |
llvm-svn: 80835
|
| |
|
|
|
|
|
|
| |
whether the current context is dependent.
Thanks to Anders for pointing this out.
llvm-svn: 80828
|
| |
|
|
|
|
| |
initialization of an anonymous union.
llvm-svn: 80826
|
| |
|
|
| |
llvm-svn: 80808
|
| |
|
|
|
|
| |
in constructors's initializer list. pr4854
llvm-svn: 80802
|
| |
|
|
|
|
| |
the nested-name-specifier
llvm-svn: 80784
|
| |
|
|
|
|
|
|
|
|
|
|
| |
simple-template-id form), check whether the scope specifier is
computable as a declaration context rather than checking whether it is
dependent, so that we properly cope with members of the current
instantiation.
Improve testing for typename specifiers that terminate in a
simpe-template-id.
llvm-svn: 80783
|
| |
|
|
|
|
| |
Patch by Geoff Keating!
llvm-svn: 80752
|
| |
|
|
|
|
|
|
|
|
| |
specifier
of any previous declaration in case we replace it in a class's declaration table.
Fixes bug 4858. This sort of thing makes me reconsider putting friend declarations in
declaration lists.
llvm-svn: 80750
|
| |
|
|
| |
llvm-svn: 80748
|
| |
|
|
|
|
|
| |
decl list, and remove some workarounds that were due to this. Thanks to Eli for
pointing this out and providing the test case.
llvm-svn: 80745
|
| |
|
|
| |
llvm-svn: 80740
|
| |
|
|
| |
llvm-svn: 80725
|
| |
|
|
| |
llvm-svn: 80723
|
| |
|
|
|
|
| |
AnonUnionMember. Fixes PR4826.
llvm-svn: 80721
|
| |
|
|
|
|
| |
Fixes PR4827.
llvm-svn: 80720
|
| |
|
|
|
|
| |
fields just fine now.
llvm-svn: 80701
|
| |
|
|
| |
llvm-svn: 80700
|
| |
|
|
|
|
| |
each of the functions in the overload set
llvm-svn: 80692
|
| |
|
|
| |
llvm-svn: 80681
|
| |
|
|
|
|
|
| |
expressions making use of an overloaded operator. Thanks for the test
case, Anders!
llvm-svn: 80679
|
| |
|
|
|
|
| |
- <rdar://problem/7185031> Add 'clang' option '-emit-ast'
llvm-svn: 80678
|
| |
|
|
| |
llvm-svn: 80672
|
| |
|
|
|
|
| |
TemplateSpecializationType. Also, make sure to get the instantiated union member.
llvm-svn: 80662
|
| |
|
|
| |
llvm-svn: 80659
|
| |
|
|
|
|
| |
structs.
llvm-svn: 80657
|
| |
|
|
| |
llvm-svn: 80655
|
| |
|
|
|
|
|
|
|
| |
explicitly-specified template argument lists in member reference
expressions, e.g.,
x->f<int>()
llvm-svn: 80646
|
| |
|
|
| |
llvm-svn: 80645
|
| |
|
|
|
|
| |
existing declaration chains.
llvm-svn: 80636
|
| |
|
|
|
|
|
|
| |
template argument lists, e.g., x.f<int>().
Semantic analysis will be a separate commit.
llvm-svn: 80624
|
| |
|
|
|
|
|
| |
are apparently used by Solaris libc despite the fact that clang claims
to be compatible with gcc 4.2, which doesn't support them.
llvm-svn: 80610
|
| |
|
|
| |
llvm-svn: 80609
|
| |
|
|
| |
llvm-svn: 80608
|
| |
|
|
|
|
| |
API for copying GC'able aggregates (Next runtime only).
llvm-svn: 80607
|
| |
|
|
|
|
| |
__has_feature(objc_nonfragile_abi) with and without -fobjc-nonfragile-abi.
llvm-svn: 80593
|
| |
|
|
|
|
|
| |
Added -fconstant-string-class= option.
Added __has_feature() test for non-fragile ABI.
llvm-svn: 80591
|
| |
|
|
| |
llvm-svn: 80491
|
| |
|
|
| |
llvm-svn: 80489
|