| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
| |
involving rvalue references, to start scoping out what is and what
isn't implemented. In the process, tweak some standards citations,
type desugaring, and teach the tentative parser about && in
ptr-operator.
llvm-svn: 123913
|
| |
|
|
|
|
| |
Part of the fix for PR8413.
llvm-svn: 123904
|
| |
|
|
|
|
|
|
| |
is marked 'final' and 'override'.
Also, call CheckOverrideControl when instantiating member functions.
llvm-svn: 123900
|
| |
|
|
| |
llvm-svn: 123894
|
| |
|
|
| |
llvm-svn: 123893
|
| |
|
|
|
|
| |
virtual member functions.
llvm-svn: 123888
|
| |
|
|
|
|
| |
CXXRecordDecl).
llvm-svn: 123885
|
| |
|
|
| |
llvm-svn: 123882
|
| |
|
|
| |
llvm-svn: 123878
|
| |
|
|
|
|
| |
suggested by Doug.
llvm-svn: 123876
|
| |
|
|
|
|
|
| |
failed to find a case where an enum context would make a difference, but
found PR9007 on the way.
llvm-svn: 123871
|
| |
|
|
| |
llvm-svn: 123868
|
| |
|
|
|
|
|
| |
declaration that name lookup actually found, so that we can use it for
access checking later on. Fixes <rdar://problem/8876150>.
llvm-svn: 123867
|
| |
|
|
|
|
|
| |
so allow it to propagate the failure outward. Fixes the crashing part
of <rdar://problem/8876150>.
llvm-svn: 123863
|
| |
|
|
|
|
|
| |
overload resolution, so that we only use that number of call arguments
for partial ordering. Fixes PR9006, a recent regression.
llvm-svn: 123861
|
| |
|
|
| |
llvm-svn: 123860
|
| |
|
|
|
|
|
|
| |
Turn on the __has_feature switch for variadic templates, document
their completion, and put the ExtWarn into the c++0x-extensions
warning group.
llvm-svn: 123854
|
| |
|
|
|
|
|
|
| |
ExtWarn. We want variadic templates to be usable in libc++/libstdc++
headers even when we're in C++98/03 mode, since it's the only clean
way to implement TR1 <functional>.
llvm-svn: 123852
|
| |
|
|
|
|
|
| |
reuse it for BlockDeclRefExpr. Do so, fixing the dependence calculate
for BlockDeclRefExpr.
llvm-svn: 123851
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
together. In particular:
- Handle the use of captured parameter pack names within blocks
(BlockDeclRefExpr understands parameter packs now)
- Handle the declaration and expansion of parameter packs within a block's
parameter list, e.g., ^(Args ...args) { ... })
- Handle instantiation of blocks where the return type was not
explicitly specified. (unrelated, but necessary for my tests).
Together, these fixes should make blocks and variadic templates work
reasonably well together. Note that BlockDeclRefExpr is still broken
w.r.t. its computation of type and value dependence, which will still
cause problems for blocks in templates.
llvm-svn: 123849
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
a pack expansion, e.g., the parameter pack Values in:
template<typename ...Types>
struct Outer {
template<Types ...Values>
struct Inner;
};
This new implementation approach introduces the notion of an
"expanded" non-type template parameter pack, for which we have already
expanded the types of the parameter pack (to, say, "int*, float*",
for Outer<int*, float*>) but have not yet expanded the values. Aside
from creating these expanded non-type template parameter packs, this
patch updates template argument checking and non-type template
parameter pack instantiation to make use of the appropriate types in
the parameter pack.
llvm-svn: 123845
|
| |
|
|
|
|
| |
in pretending otherwise.
llvm-svn: 123839
|
| |
|
|
|
|
| |
a typo for !=). Fixes PR9001, from Hans Wennborg!
llvm-svn: 123836
|
| |
|
|
|
|
|
| |
definition, rather than complaining about it. Problem reported by
Marshall Clow.
llvm-svn: 123835
|
| |
|
|
|
|
|
| |
there's a respectable point of instantiation. Also, make sure we do
this operation even when instantiating a dependently-typed variable.
llvm-svn: 123818
|
| |
|
|
|
|
|
|
|
|
|
|
| |
outermost array types and not on the element type. Move the CanonicalType
member from Type to ExtQualsTypeCommonBase; the canonical type on an ExtQuals
node includes the qualifiers on the ExtQuals. Assorted optimizations enabled
by this change.
getQualifiers(), hasQualifiers(), etc. should all now implicitly look through
array types.
llvm-svn: 123817
|
| |
|
|
|
|
| |
thousand other things which were (generally inadvertantly) relying on that.
llvm-svn: 123814
|
| |
|
|
|
|
| |
counterparts where char units are needed.
llvm-svn: 123805
|
| |
|
|
| |
llvm-svn: 123802
|
| |
|
|
|
|
| |
clang_createTranslationUnitFromSourceFile().
llvm-svn: 123793
|
| |
|
|
| |
llvm-svn: 123791
|
| |
|
|
| |
llvm-svn: 123790
|
| |
|
|
|
|
|
|
| |
references by monitoring whether an access to
a variable is solely to compute it's lvalue or
to do an lvalue-to-rvalue conversion (i.e., a load).
llvm-svn: 123777
|
| |
|
|
| |
llvm-svn: 123773
|
| |
|
|
|
|
|
|
| |
duplicate
definition by command line options. Fixes rdar://8875916.
llvm-svn: 123767
|
| |
|
|
| |
llvm-svn: 123759
|
| |
|
|
|
|
| |
parameter types.
llvm-svn: 123753
|
| |
|
|
|
|
|
| |
::getCVRQualifiers() now look through array types, like all the other
standard queries. Also, make a 'split' variant of getUnqualifiedType().
llvm-svn: 123751
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For example:
class A{
public:
A& operator=(const A& that) {
if (this != &that) {
this->A::~A();
this->A::A(that); // <=== explicit constructor call.
}
return *this;
}
};
More work will be needed to support an explicit call to a template constructor.
llvm-svn: 123735
|
| |
|
|
|
|
|
| |
thus identifying a minor logical flaw in
UninitializedValuesV2.cpp.
llvm-svn: 123734
|
| |
|
|
|
|
| |
also properly handle confluence of loops.
llvm-svn: 123733
|
| |
|
|
| |
llvm-svn: 123723
|
| |
|
|
|
|
| |
ASTContext::toCharUnitsFromBits() when converting from bit sizes to char units.
llvm-svn: 123720
|
| |
|
|
|
|
| |
-Wint-to-pointer-cast.
llvm-svn: 123719
|
| |
|
|
|
|
| |
ASTContext::toCharUnitsFromBits() when converting from bit sizes to char units.
llvm-svn: 123715
|
| |
|
|
|
|
|
| |
FIXME: It would be incompatible to Microsoft's in one point.
On mingw64-gcc, {i128} is expanded for args and returned as {rax, rdx}.
llvm-svn: 123692
|
| |
|
|
| |
llvm-svn: 123691
|
| |
|
|
|
|
| |
It should be defined as-is. Some headers would detect existence of __declspec and use one.
llvm-svn: 123690
|
| |
|
|
| |
llvm-svn: 123689
|
| |
|
|
| |
llvm-svn: 123682
|