| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
| |
When performing template instantiation of the definitions of member
templates (or members thereof), we build a data structure containing
the template arguments from each "level" of template
instantiation. During template instantiation, we substitute all levels
of template arguments simultaneously.
llvm-svn: 80389
|
| |
|
|
| |
llvm-svn: 80182
|
| |
|
|
| |
llvm-svn: 80174
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
name, e.g.,
x->Base::f()
retain the qualifier (and its source range information) in a new
subclass of MemberExpr called CXXQualifiedMemberExpr. Provide
construction, transformation, profiling, printing, etc., for this new
expression type.
When a virtual function is called via a qualified name, don't emit a
virtual call. Instead, call that function directly. Mike, could you
add a CodeGen test for this, too?
llvm-svn: 80167
|
| |
|
|
|
|
| |
type convesions of class objects [class.conv]. WIP.
llvm-svn: 80127
|
| |
|
|
|
|
| |
call it.
llvm-svn: 80122
|
| |
|
|
|
|
| |
Zaffanella
llvm-svn: 80097
|
| |
|
|
| |
llvm-svn: 80055
|
| |
|
|
|
|
| |
functions that don't instantiate definitions.
llvm-svn: 80037
|
| |
|
|
| |
llvm-svn: 79974
|
| |
|
|
| |
llvm-svn: 79972
|
| |
|
|
| |
llvm-svn: 79970
|
| |
|
|
| |
llvm-svn: 79927
|
| |
|
|
|
|
|
|
|
|
| |
pointers, by extending the "composite pointer type" logic to include
member pointer types.
Introduce test cases for member pointer comparisons, including those
that involve the builtin operator candidates implemented earlier.
llvm-svn: 79925
|
| |
|
|
| |
llvm-svn: 79793
|
| |
|
|
|
|
|
| |
Explicitly add it as an EXTENSION instead of an EXTWARN so that it only
comes out with -pedantic. Thanks Eli!
llvm-svn: 79791
|
| |
|
|
|
|
| |
type is 'id' type.
llvm-svn: 79781
|
| |
|
|
|
|
|
|
|
|
|
| |
avoid emitting a warning on "someptr > 0". This is obviously questionable (they
could use != instead) but is reasonable, and the warning "ordered comparison
between pointer and integer" didn't make a ton of sense because 0 is a valid
null pointer constant.
Just silence the warning in this case, it is unlikely to indicate a bug.
llvm-svn: 79743
|
| |
|
|
|
|
|
|
|
|
| |
- Allowing one to name a member function template within a class
template and on the right-hand side of a member access expression.
- Template argument deduction for calls to member function templates.
- Registering specializations of member function templates (and
finding them later).
llvm-svn: 79581
|
| |
|
|
|
|
|
|
| |
"ObjCImplctSetterGetterRefExpr".
A field rename and more comments.
llvm-svn: 79537
|
| |
|
|
|
|
|
| |
Patch by Enea Zaffanella, with some simplifications/corrections to
isPromotableBitField by me.
llvm-svn: 79510
|
| |
|
|
|
|
|
|
| |
where sizeof(short) == sizeof(int). Move UsualArithmeticConversionsType
out of Sema, since it was only there as a historical artifact. Patch by
Enea Zaffanella.
llvm-svn: 79412
|
| |
|
|
| |
llvm-svn: 79395
|
| |
|
|
|
|
|
|
| |
Removed an unnecessary loop to get to setters incoming
argument. Added DoxyGen comments. Still more work
to do in this area (WIP).
llvm-svn: 79365
|
| |
|
|
|
|
|
|
|
|
| |
Objective-C code.
This currently breaks test/SemaObjC/id-isa-ref.m and issues some spurious warnings when you attempt to assign a struct objc_class* value to a Class variable. The test case probably should fail as it's written, because without the definition of Class the compiler should not assume struct objc_class* is a valid receiver type, but it's left broken because it would be nice if we could get that passing too for the special case of isa.
Approved by snaroff.
llvm-svn: 79248
|
| |
|
|
| |
llvm-svn: 79168
|
| |
|
|
|
|
| |
CheckFunctionCall and CheckBlockCall return bool instead. No intended functionality change.
llvm-svn: 79157
|
| |
|
|
|
|
|
| |
simplifies the AST, and can matter in some rare cases involving
casts to vector types. Patch by Enea Zaffanella.
llvm-svn: 79126
|
| |
|
|
|
|
| |
function.
llvm-svn: 79013
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Fixes PR4704 problems
Addresses Eli's patch feedback re: ugly cast code
Updates all postfix operators to remove ParenListExprs. While this is awful,
no better solution (say, in the parser) is obvious to me. Better solutions
welcome.
llvm-svn: 78621
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--- Reverse-merging r78535 into '.':
D test/Sema/altivec-init.c
U include/clang/Basic/DiagnosticSemaKinds.td
U include/clang/AST/Expr.h
U include/clang/AST/StmtNodes.def
U include/clang/Parse/Parser.h
U include/clang/Parse/Action.h
U tools/clang-cc/clang-cc.cpp
U lib/Frontend/PrintParserCallbacks.cpp
U lib/CodeGen/CGExprScalar.cpp
U lib/Sema/SemaInit.cpp
U lib/Sema/Sema.h
U lib/Sema/SemaExpr.cpp
U lib/Sema/SemaTemplateInstantiateExpr.cpp
U lib/AST/StmtProfile.cpp
U lib/AST/Expr.cpp
U lib/AST/StmtPrinter.cpp
U lib/Parse/ParseExpr.cpp
U lib/Parse/ParseExprCXX.cpp
llvm-svn: 78551
|
| |
|
|
|
|
|
|
| |
In addition to being defined by the AltiVec PIM, this is also the vector
initializer syntax used by OpenCL, so that vector literals are compatible
with macro arguments.
llvm-svn: 78535
|
| |
|
|
| |
llvm-svn: 78488
|
| |
|
|
|
|
| |
implicit CXXThisExpr.
llvm-svn: 78474
|
| |
|
|
| |
llvm-svn: 78434
|
| |
|
|
| |
llvm-svn: 78429
|
| |
|
|
| |
llvm-svn: 78415
|
| |
|
|
| |
llvm-svn: 78385
|
| |
|
|
|
|
|
| |
tree transformation. Template instantiation uses this general
transformation rather than implementing its own transformation.
llvm-svn: 78286
|
| |
|
|
|
|
|
|
| |
this->Base::foo
from James Porter!
llvm-svn: 78278
|
| |
|
|
| |
llvm-svn: 78102
|
| |
|
|
| |
llvm-svn: 77652
|
| |
|
|
|
|
| |
will be :)
llvm-svn: 77650
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Type::getAsReferenceType() -> Type::getAs<ReferenceType>()
Type::getAsRecordType() -> Type::getAs<RecordType>()
Type::getAsPointerType() -> Type::getAs<PointerType>()
Type::getAsBlockPointerType() -> Type::getAs<BlockPointerType>()
Type::getAsLValueReferenceType() -> Type::getAs<LValueReferenceType>()
Type::getAsRValueReferenceType() -> Type::getAs<RValueReferenceType>()
Type::getAsMemberPointerType() -> Type::getAs<MemberPointerType>()
Type::getAsReferenceType() -> Type::getAs<ReferenceType>()
Type::getAsTagType() -> Type::getAs<TagType>()
And remove Type::getAsReferenceType(), etc.
This change is similar to one I made a couple weeks ago, but that was partly
reverted pending some additional design discussion. With Doug's pending smart
pointer changes for Types, it seemed natural to take this approach.
llvm-svn: 77510
|
| |
|
|
|
|
| |
performace sake. Also added a test case.
llvm-svn: 77502
|
| |
|
|
|
|
| |
class.
llvm-svn: 77497
|
| |
|
|
|
|
|
| |
excpression, if needed, and remove some ir-gen code
now unnencessary.
llvm-svn: 77490
|
| |
|
|
|
|
|
|
|
| |
A template name can refer to a set of overloaded function
templates. Model this in TemplateName, which can now refer to an
OverloadedFunctionDecl that contains function templates. This removes
an unspeakable hack in Sema::isTemplateName.
llvm-svn: 77488
|
| |
|
|
|
|
|
|
|
| |
('void *' and 'NSString *')".
Remove XFAIL from 'conditional-expr-4.m' test case (which would have caught this).
Also tweaked several aspects of the test to jive with the current type checking.
llvm-svn: 77453
|
| |
|
|
| |
llvm-svn: 77452
|