| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 90044
|
| |
|
|
| |
llvm-svn: 90030
|
| |
|
|
|
|
| |
DeclarationName can't handle them yet, so right now Parser just errors out on them.
llvm-svn: 90027
|
| |
|
|
|
|
|
|
|
|
|
| |
implement it explicitly or assert that it doesn't make sense for a scalar.
This caught a couple interesting issues: one, CK_BaseToDerivedMemberPointer
casts were getting silently miscompiled, and two, Sema was constructing some
strange implicit casts of type CK_UserDefinedConversion.
The change in SemaExprCXX makes sure the cast kinds are getting set correctly.
llvm-svn: 89987
|
| |
|
|
| |
llvm-svn: 89983
|
| |
|
|
|
|
| |
overrides existing destructors.
llvm-svn: 89967
|
| |
|
|
| |
llvm-svn: 89966
|
| |
|
|
|
|
|
|
|
|
|
|
| |
maintains a stack of evaluation contexts rather than having the parser
do it. This change made it simpler to track in which contexts
temporaries were created, so that we could...
"Forget" about temporaries created within unevaluated contexts, so
that we don't build a CXXExprWithTemporaries and, therefore, destroy
the integral-constness of our expressions. Fixes PR5609.
llvm-svn: 89908
|
| |
|
|
|
|
| |
This fixes pr5611.
llvm-svn: 89895
|
| |
|
|
|
|
|
|
|
|
|
| |
the linkage of a declaration. Switch the lame (and completely wrong)
NamedDecl::hasLinkage() over to using the new NamedDecl::getLinkage(),
along with the "can this declaration be a template argument?" check
that started all of this.
Fixes -fsyntax-only for PR5597.
llvm-svn: 89891
|
| |
|
|
|
|
| |
initializer name is available.
llvm-svn: 89885
|
| |
|
|
| |
llvm-svn: 89874
|
| |
|
|
|
|
|
|
|
|
|
| |
function templates (in C++98), friend function templates, and
out-of-line definitions of members of class templates.
Also handles merging of default template arguments from previous
declarations of function templates, for C++0x. However, we don't yet
make use of those default template arguments.
llvm-svn: 89872
|
| |
|
|
|
|
| |
switch condition, fixing PR5612
llvm-svn: 89864
|
| |
|
|
|
|
|
| |
still parse the body of the switch to try to avoid spurious
diagnostics. Fixes PR5606.
llvm-svn: 89847
|
| |
|
|
|
|
| |
instantiation. lib/Support/CommandLine.cpp is our test case
llvm-svn: 89845
|
| |
|
|
| |
llvm-svn: 89843
|
| |
|
|
| |
llvm-svn: 89842
|
| |
|
|
|
|
| |
The attributes are currently ignored.
llvm-svn: 89837
|
| |
|
|
|
|
| |
to build casted expression-list AST to Sema.
llvm-svn: 89827
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
All statements that involve conditions can now hold on to a separate
condition declaration (a VarDecl), and will use a DeclRefExpr
referring to that VarDecl for the condition expression. ForStmts now
have such a VarDecl (I'd missed those in previous commits).
Also, since this change reworks the Action interface for
if/while/switch/for, use FullExprArg for the full expressions in those
expressions, to ensure that we're emitting
Note that we are (still) not generating the right cleanups for
condition variables in for statements. That will be a follow-on
commit.
llvm-svn: 89817
|
| |
|
|
|
|
| |
definition. This allows sema to not emit spurious diagnostics in some invalid code.
llvm-svn: 89816
|
| |
|
|
|
|
| |
the common routine.
llvm-svn: 89802
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
cleanups for while loops:
1) Make sure that we destroy the condition variable of a while statement each time through the loop for, e.g.,
while (shared_ptr<WorkInt> p = getWorkItem()) {
// ...
}
2) Make sure that we always enter a new cleanup scope for the body of the while loop, even when there is no compound expression, e.g.,
while (blah)
RAIIObject raii(blah+1);
llvm-svn: 89800
|
| |
|
|
|
|
| |
member-reference contexts. Fixes some clang-on-clang asserts.
llvm-svn: 89796
|
| |
|
|
| |
llvm-svn: 89789
|
| |
|
|
|
|
|
|
|
|
|
|
| |
DependentScopeDeclRefExpr support storing templateids. Unite the common
code paths between ActOnDeclarationNameExpr and ActOnTemplateIdExpr.
This gets us to a point where we don't need to store function templates in
the AST using TemplateNames, which is critical to ripping out OverloadedFunction.
Also resolves a few FIXMEs.
llvm-svn: 89785
|
| |
|
|
|
|
|
| |
Add support for variadic collection functions. More to do
here.
llvm-svn: 89781
|
| |
|
|
| |
llvm-svn: 89778
|
| |
|
|
|
|
|
| |
make sure that this variable is destroyed when we exit the switch
statement.
llvm-svn: 89776
|
| |
|
|
|
|
| |
dependent.
llvm-svn: 89774
|
| |
|
|
| |
llvm-svn: 89767
|
| |
|
|
|
|
| |
definition so that the function will have the right linkage.
llvm-svn: 89740
|
| |
|
|
|
|
|
|
|
| |
rather than burying it in a CXXConditionDeclExpr (that occassionally
hides behind implicit conversions). Similar changes for
switch, while, and do-while will follow, then the removal of
CXXConditionDeclExpr. This commit is the canary.
llvm-svn: 89717
|
| |
|
|
| |
llvm-svn: 89704
|
| |
|
|
| |
llvm-svn: 89692
|
| |
|
|
|
|
| |
type-casts in the parser.
llvm-svn: 89691
|
| |
|
|
|
|
|
| |
objective-c pointer type. This was a serious mishap and
luckily, Ted's test caught that (and patch fixes the test case).
llvm-svn: 89680
|
| |
|
|
|
|
| |
methods. This fixes a crash when writing sizeof(Incomplete&), and lets ASTContext's methods do the right thing for CodeGen, which fixes PR5590.
llvm-svn: 89668
|
| |
|
|
| |
llvm-svn: 89657
|
| |
|
|
|
|
|
| |
functions for a switch condition's conversion to integral or
enumeration type.
llvm-svn: 89656
|
| |
|
|
|
|
| |
integral or enumeration type (vi user-defined conversions). Fixes PR5518.
llvm-svn: 89655
|
| |
|
|
|
|
|
| |
of the current instantiation and members of an unknown specialization
when type-checking a qualified-if expression.
llvm-svn: 89653
|
| |
|
|
|
|
| |
PR5541
llvm-svn: 89652
|
| |
|
|
|
|
|
|
|
|
| |
complaint to a warning and providing a helpful node in the case where
the "template<>" header is redundant because the corresponding
template-id refers to an explicit specialization. C++0x might still
change this behavior, and existing practice is all over the place on
the number of "template<>" headers actually needed.
llvm-svn: 89651
|
| |
|
|
|
|
| |
DeclRefExprs
llvm-svn: 89649
|
| |
|
|
|
|
|
|
|
|
| |
locations" into
a new class. Use it pervasively throughout Sema.
My fingers hurt.
llvm-svn: 89638
|
| |
|
|
| |
llvm-svn: 89624
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
operand of an addressof operator, and so we should not treat it as an abstract
member-pointer expression and therefore suppress the implicit member access.
This is really a well-formedness constraint on expressions: a DeclRefExpr of
a FieldDecl or a non-static CXXMethodDecl (or template thereof, or unresolved
collection thereof) should not be allowed in an arbitrary location in the AST.
Arguably it shouldn't be allowed anywhere and we should have a different expr
node type for this. But unfortunately we don't have a good way of enforcing
this kind of constraint right now.
llvm-svn: 89578
|
| |
|
|
| |
llvm-svn: 89575
|