| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
still works.
llvm-svn: 78979
|
| |
|
|
|
|
|
|
| |
function in the order according to c++03. ir-gen
for copy assignment in the trivial case and the first
test case.
llvm-svn: 78938
|
| |
|
|
| |
llvm-svn: 78876
|
| |
|
|
| |
llvm-svn: 78862
|
| |
|
|
| |
llvm-svn: 78861
|
| |
|
|
|
|
| |
WIP.
llvm-svn: 78841
|
| |
|
|
| |
llvm-svn: 78826
|
| |
|
|
| |
llvm-svn: 78780
|
| |
|
|
| |
llvm-svn: 78735
|
| |
|
|
|
|
| |
may not implement NSCopying protocol in -fobjc-gc[-only] mode.
llvm-svn: 78726
|
| |
|
|
|
|
| |
the AST, and create such declarations.
llvm-svn: 78719
|
| |
|
|
|
|
|
| |
copying in copy constructors and used in
default constructor's initializer list.
llvm-svn: 78700
|
| |
|
|
| |
llvm-svn: 78674
|
| |
|
|
|
|
|
|
|
|
|
|
| |
FriendFunctionDecl, and create instances as appropriate.
The design of FriendFunctionDecl is still somewhat up in the air; you can
befriend arbitrary types of functions --- methods, constructors, etc. ---
and it's not clear that this representation captures that very well.
We'll have a better picture when we start consuming this data in access
control.
llvm-svn: 78653
|
| |
|
|
|
|
|
| |
generic tree transformation (also used for recanonicalization) and a
small amount of template-instantiation-specific logic.
llvm-svn: 78645
|
| |
|
|
|
|
| |
GetTypeForDeclarator.
llvm-svn: 78644
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
constructing cast expressions. Right now it only stores the cast kind, but in the future it might store conversion functions and constructors.
llvm-svn: 78599
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. Passing something that isn't a string used to cause:
"argument to annotate attribute was not a string literal"
make it say "section attribute" instead.
2. Fix the location of the above message to point to the
bad argument instead of the section token.
3. Implement rdar://4341926, by diagnosing invalid section
specifiers in the frontend rather than letting them slip all
the way to the assembler (a QoI win).
An example of #3 is that we used to produce something like this:
/var/folders/n7/n7Yno9ihEm894640nJdSQU+++TI/-Tmp-//ccFPFGtT.s:2:Expected comma after segment-name
/var/folders/n7/n7Yno9ihEm894640nJdSQU+++TI/-Tmp-//ccFPFGtT.s:2:Rest of line ignored. 1st junk character valued 46 (.).
Daniel improved clang to use llvm_report_error, so now we got:
$ clang t.c -c
fatal error: error in backend: Global variable 'x' has an invalid section specifier 'sadf': mach-o section specifier
requires a segment and section separated by a comma.
with no loc info. Now we get:
$ clang t.c -fsyntax-only
t.c:4:30: error: argument to 'section' attribute is not valid for this target: mach-o section specifier requires a segment
and section separated by a comma
int x __attribute__((section("sadf")));
^
which is nice :)
llvm-svn: 78586
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--- 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
|
| |
|
|
|
|
| |
non-pointer type
llvm-svn: 78542
|
| |
|
|
|
|
| |
function's return
llvm-svn: 78541
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
variables.
llvm-svn: 78507
|
| |
|
|
| |
llvm-svn: 78502
|
| |
|
|
| |
llvm-svn: 78488
|
| |
|
|
|
|
|
|
| |
PackedAttr now only represents __attribute__((packed)).
This is necessary because #pragma pack and __attribute__((packed)) have different semantics. No functionality change yet, but this lays the groundwork for fixing a record layout bug.
llvm-svn: 78483
|
| |
|
|
|
|
| |
EnterDeclaratorContext has been called. Fixes PR4694. (Doug, please review)
llvm-svn: 78480
|
| |
|
|
|
|
| |
function.
llvm-svn: 78478
|
| |
|
|
|
|
| |
implicit CXXThisExpr.
llvm-svn: 78474
|
| |
|
|
| |
llvm-svn: 78471
|
| |
|
|
| |
llvm-svn: 78452
|
| |
|
|
|
|
|
| |
to allow sharing of nodes. Simplifies some aspects of template
instantiation, and fixes both PR3444 and <rdar://problem/6757457>.
llvm-svn: 78450
|
| |
|
|
| |
llvm-svn: 78434
|
| |
|
|
| |
llvm-svn: 78429
|
| |
|
|
| |
llvm-svn: 78415
|
| |
|
|
|
|
|
| |
separately. Add the framework (currently unfed) for finding friend declarations
during argument-dependent lookup.
llvm-svn: 78414
|
| |
|
|
| |
llvm-svn: 78395
|
| |
|
|
| |
llvm-svn: 78385
|
| |
|
|
|
|
| |
TransformStmt, into the tree transformer.
llvm-svn: 78347
|
| |
|
|
|
|
| |
guard its report on GNUMode.
llvm-svn: 78338
|
| |
|
|
|
|
|
| |
Permit a class to friend its class members in C++ 98, as long as extensions
are enabled (and even when they aren't, only give an extwarn about it).
llvm-svn: 78332
|
| |
|
|
| |
llvm-svn: 78331
|
| |
|
|
|
|
| |
don't recurs and crash.
llvm-svn: 78323
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
we were going to enter into the scope of a class template or class
template partial specialization, rebuild that type so that it can
refer to members of the current instantiation, as in code like
template<typename T>
struct X {
typedef T* pointer;
pointer data();
};
template<typename T>
typename X<T>::pointer X<T>::data() { ... }
Without rebuilding the return type of this out-of-line definition, the
canonical return type of the out-of-line definition (a TypenameType)
will not match the canonical return type of the declaration (the
canonical type of T*).
llvm-svn: 78316
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
transform, then use the result for template instantiation. The generic
transformation fixes a few issues:
- It copes better with template template parameters and member
templates (when they're implemented).
- The logic used to replace template template parameters with their
arguments is now centralized in TransformDecl, so that it will apply
for other declaration-instantiation steps.
- The error-recovery strategy is normalized now, so that any error
results in a NULL TemplateName.
llvm-svn: 78292
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
string.
llvm-svn: 78276
|
| |
|
|
| |
llvm-svn: 78274
|