| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
| |
to pointer function for delete expression. 2)
Treat type conversion function and its 'const' version
as identical in building the visible conversion list.
llvm-svn: 81930
|
| |
|
|
|
|
|
|
|
| |
whether a constructor is a copy constructor.
Sadly, I wasn't able to get down to a test case smaller than libstdc++'s
<string>.
llvm-svn: 81913
|
| |
|
|
|
|
| |
(C++ [temp.class.order]).
llvm-svn: 81866
|
| |
|
|
| |
llvm-svn: 81837
|
| |
|
|
| |
llvm-svn: 81835
|
| |
|
|
|
|
|
| |
structure-valued setter should cause a user error instead of
crash.
llvm-svn: 81769
|
| |
|
|
|
|
| |
location. Patch by Enea Zaffanella.
llvm-svn: 81672
|
| |
|
|
|
|
|
|
| |
generated for an inline function definition, taking into account C99
and GNU inline/extern inline semantics. This solution is simpler,
cleaner, and fixes PR4536.
llvm-svn: 81670
|
| |
|
|
|
|
| |
functions for a class when needed.
llvm-svn: 81624
|
| |
|
|
|
|
| |
need them.
llvm-svn: 81621
|
| |
|
|
|
|
| |
conversion functions.
llvm-svn: 81618
|
| |
|
|
| |
llvm-svn: 81590
|
| |
|
|
| |
llvm-svn: 81589
|
| |
|
|
| |
llvm-svn: 81588
|
| |
|
|
| |
llvm-svn: 81583
|
| |
|
|
|
|
| |
first use in calling the conversion function on delete statements.
llvm-svn: 81576
|
| |
|
|
|
|
|
|
|
|
| |
instantiation of a member function template or member function of a
class template to be out-of-line if the definition of that function
template or member function was defined out-of-line. This ensures that
we get the correct linkage for explicit instantiations of out-of-line
definitions.
llvm-svn: 81562
|
| |
|
|
|
|
|
|
|
|
|
| |
- Diagnose attempts to add default arguments to templates (or member
functions of templates) after the initial declaration (DR217).
- Improve diagnostics when a default argument is redefined. Now, the
note will always point at the place where the default argument was
previously defined, rather than pointing to the most recent
declaration of the function.
llvm-svn: 81548
|
| |
|
|
|
|
| |
specialization types differently.
llvm-svn: 81512
|
| |
|
|
|
|
|
| |
Also, treat the GNU __null as an integral constant expression to match
GCC's behavior.
llvm-svn: 81490
|
| |
|
|
|
|
| |
for block pointer.
llvm-svn: 81479
|
| |
|
|
| |
llvm-svn: 81477
|
| |
|
|
|
|
|
|
|
|
| |
integral constant expressions (for conversions to integer types,
naturally). I don't *think* that const_casts will ever get to this
point, but I also can't convince myself that they won't... so I've
taken the safe route and allowed the ICE checking code to look at
const_cast.
llvm-svn: 81453
|
| |
|
|
|
|
|
|
| |
all of the parent DeclContexts that aren't represented within the
Scope chain. This fixes some name-lookup problems in out-of-line
definitions of members of nested classes.
llvm-svn: 81451
|
| |
|
|
|
|
|
|
| |
such initializations properly convert constructor arguments and fill
in default arguments where necessary. This also makes the ownership
model more clear.
llvm-svn: 81394
|
| |
|
|
| |
llvm-svn: 81346
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
templates, e.g.,
x.template get<T>
We can now parse these, represent them within an UnresolvedMemberExpr
expression, then instantiate that expression node in simple cases.
This allows us to stumble through parsing LLVM's Casting.h.
llvm-svn: 81300
|
| |
|
|
|
|
| |
as __strong.
llvm-svn: 81283
|
| |
|
|
|
|
|
|
| |
through an array of void*), so that we don't run afoul of the
strict-aliasing rules in C++ 3.10p15. Unfortunately, GCC 4.4 still
complains about this code.
llvm-svn: 81251
|
| |
|
|
|
|
| |
Weinig!
llvm-svn: 81237
|
| |
|
|
| |
llvm-svn: 81178
|
| |
|
|
| |
llvm-svn: 81150
|
| |
|
|
|
|
|
|
|
| |
for (unsigned i = numargs; i < NumArgs; ++i)
Args[0] = 0;
;)
llvm-svn: 81123
|
| |
|
|
|
|
|
| |
destroying the CXXConstructExpr.", this is causing test failures across the
board.
llvm-svn: 81100
|
| |
|
|
|
|
| |
destroying the CXXConstructExpr.
llvm-svn: 81096
|
| |
|
|
|
|
|
|
| |
ways: remove elab types during desugaring, enhance pretty-printing to allow
tags to be suppressed without suppressing scopes, look through elab types
when associating a typedef name with an anonymous record type.
llvm-svn: 81065
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
directly in the AST. The current thinking is to create these
only in C++ mode for efficiency. But for now, they're not being
created at all; patch to follow.
This will let us do things like verify that tags match during
template instantation, as well as signal that an elaborated type
specifier was used for clients that actually care.
Optimally, the TypeLoc hierarchy should be adjusted to carry tag
location information as well.
llvm-svn: 81057
|
| |
|
|
|
|
|
|
|
|
|
| |
templates. We now distinguish between an explicit instantiation
declaration and an explicit instantiation definition, and know not to
instantiate explicit instantiation declarations. Unfortunately, there
is some remaining confusion w.r.t. instantiation of out-of-line member
function definitions that causes trouble here.
llvm-svn: 81053
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
expressions, e.g.,
p->~T()
when p is a pointer to a scalar type.
We don't currently diagnose errors when pseudo-destructor expressions
are used in any way other than by forming a call.
llvm-svn: 81009
|
| |
|
|
|
|
| |
constructor templates
llvm-svn: 81002
|
| |
|
|
|
|
| |
friends.
llvm-svn: 80977
|
| |
|
|
|
|
| |
base and data members when they are needed.
llvm-svn: 80967
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 80862
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
where we build the constructor's initializer list.
llvm-svn: 80735
|
| |
|
|
|
|
| |
AnonUnionMember. Fixes PR4826.
llvm-svn: 80721
|