| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 72616
|
| |
|
|
|
|
| |
declaration in -ast-print mode.
llvm-svn: 72615
|
| |
|
|
|
|
|
|
|
| |
using namespace std::debug;
Extended UsingDirectiveDecl to store the nested-name-specifier that
precedes the nominated namespace.
llvm-svn: 72614
|
| |
|
|
|
|
| |
declaration.
llvm-svn: 72613
|
| |
|
|
| |
llvm-svn: 72612
|
| |
|
|
|
|
| |
transitioning callers over to pass one in.
llvm-svn: 72609
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make StmtPrinter use DeclPrinter to print all declarations. Merge
declarations in the limited case of an unnamed TagDecl followed by one
or more declarations using that TagDecl directly. Change
SuppressTypeSpecifiers to the more general SuppressSpecifiers, and
use it to suppress stuff like "typedef" and "extern". Replace
OwnedTag with SuppressTag, since it's more convenient to print
declarations from DeclPrinter at the moment.
improvements to declaration printing. Fix pretty-printing for K&R
function definitions and __builtin_va_arg.
We're now to the point where the pretty-printing output for non-trivial
programs can actually be piped back into clang.
llvm-svn: 72608
|
| |
|
|
| |
llvm-svn: 72607
|
| |
|
|
| |
llvm-svn: 72605
|
| |
|
|
| |
llvm-svn: 72602
|
| |
|
|
|
|
|
| |
move to DeclPrinter.cpp, but I haven't quite worked out how best to do
that.
llvm-svn: 72599
|
| |
|
|
|
|
| |
(I have a work-in-progress patch which uses this.)
llvm-svn: 72598
|
| |
|
|
|
|
|
|
|
| |
walks through DeclContexts properly, and prints more of the
information available in the AST. The functionality is still available
via -ast-print, -ast-dump, etc., and also via the new member functions
Decl::dump() and Decl::print().
llvm-svn: 72597
|
| |
|
|
| |
llvm-svn: 72591
|
| |
|
|
|
|
|
|
|
| |
printing logic to help customize the output. For now, we use this
rather than a special flag to suppress the "struct" when printing
"struct X" and to print the Boolean type as "bool" in C++ but "_Bool"
in C.
llvm-svn: 72590
|
| |
|
|
|
|
| |
VLAs.
llvm-svn: 72587
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
given DeclContext is dependent on type parameters. Use this to
properly determine whether a TagDecl is dependent; previously, we were
missing the case where the TagDecl is a local class of a member
function of a class template (phew!).
Also, make sure that, when we instantiate declarations within a member
function of a class template (or a function template, eventually),
that we add those declarations to the "instantiated locals" map so
that they can be found when instantiating declaration references.
Unfortunately, I was not able to write a useful test for this change,
although the assert() that fires when uncommenting the FIXME'd line in
test/SemaTemplate/instantiate-declref.cpp tells the "experienced user"
that we're now doing the right thing.
llvm-svn: 72526
|
| |
|
|
|
|
| |
keep the spec out of the canonical type this time. Net effect is currently nothing, because the spec isn't checked anywhere.
llvm-svn: 72498
|
| |
|
|
|
|
| |
might not be the right way to do it.
llvm-svn: 72490
|
| |
|
|
|
|
|
|
| |
This allows me to remove some API that I don't want to carry over to ObjCObjectPointerType.
No functionality change.
llvm-svn: 72475
|
| |
|
|
|
|
| |
of a reference correctly.
llvm-svn: 72463
|
| |
|
|
|
|
|
|
| |
an integral constant expression, maintain a cache of the value and the
is-an-ICE flag within the VarDecl itself. This eliminates
exponential-time behavior of the Fibonacci template metaprogram.
llvm-svn: 72428
|
| |
|
|
| |
llvm-svn: 72415
|
| |
|
|
|
|
| |
No intended functionality change.
llvm-svn: 72410
|
| |
|
|
| |
llvm-svn: 72409
|
| |
|
|
|
|
| |
correctly.
llvm-svn: 72401
|
| |
|
|
|
|
|
|
|
|
|
|
| |
expressions. This change introduces another AST node,
CXXUnresolvedMemberExpr, that captures member references (x->m, x.m)
when the base of the expression (the "x") is type-dependent, and we
therefore cannot resolve the member reference yet.
Note that our parsing of member references for C++ is still quite
poor, e.g., we don't handle x->Base::m or x->operator int.
llvm-svn: 72281
|
| |
|
|
|
|
|
|
|
| |
and objects of this class are derived from 'NSProxy'.
Under such conditions, which means that every method possible is
implemented in the class, we should not issue "Method definition not found"
warnings.
llvm-svn: 72267
|
| |
|
|
|
|
|
|
| |
-Makes typeof consistent with sizeof/alignof
-Fixes a bug when '>' is in a typeof expression, inside a template type param:
A<typeof(x>1)> a;
llvm-svn: 72255
|
| |
|
|
|
|
|
|
| |
can. Also, delay semantic analysis of initialization for
value-dependent as well as type-dependent expressions, since we can't
always properly type-check a value-dependent expression.
llvm-svn: 72233
|
| |
|
|
| |
llvm-svn: 72228
|
| |
|
|
| |
llvm-svn: 72224
|
| |
|
|
| |
llvm-svn: 72210
|
| |
|
|
|
|
| |
due to C++ type construction of the form T(a1, a2, ..., aN).
llvm-svn: 72183
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
describe the construction of a value of a given type using function
syntax, e.g.,
T(a1, a2, ..., aN)
when the type or any of its arguments are type-dependent. In this
case, we don't know what kind of type-construction this will be: it
might construct a temporary of type 'T' (which might be a class or
non-class type) or might perform a conversion to type 'T'. Also,
implement printing of and template instantiation for this new
expression type. Due to the change in Sema::ActOnCXXTypeConstructExpr,
our existing tests cover template instantiation of this new expression
node.
llvm-svn: 72176
|
| |
|
|
|
|
|
| |
operator in C++, and verify that template instantiation for the
condition operator does the right thing.
llvm-svn: 72127
|
| |
|
|
| |
llvm-svn: 72081
|
| |
|
|
| |
llvm-svn: 72058
|
| |
|
|
| |
llvm-svn: 72035
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
template, introduce that member function into the template
instantiation stack. Also, add diagnostics showing the member function
within the instantiation stack and clean up the qualified-name
printing so that we get something like:
note: in instantiation of member function 'Switch1<int, 2, 2>::f'
requested here
in the template instantiation backtrace.
llvm-svn: 72015
|
| |
|
|
| |
llvm-svn: 71989
|
| |
|
|
|
|
| |
a test case
llvm-svn: 71972
|
| |
|
|
|
|
| |
valid C code.
llvm-svn: 71971
|
| |
|
|
|
|
| |
member functions it overrides (if any)
llvm-svn: 71968
|
| |
|
|
|
|
| |
these are testable yet, though.
llvm-svn: 71953
|
| |
|
|
| |
llvm-svn: 71907
|
| |
|
|
| |
llvm-svn: 71903
|
| |
|
|
|
|
|
|
|
|
| |
constructors and destructors. This is a requirement of
DeclarationNameTable::getCXXSpecialName that we weren't assert()'ing,
so it should have been caught much earlier :(
Big thanks to Anders for the test case.
llvm-svn: 71895
|
| |
|
|
| |
llvm-svn: 71878
|
| |
|
|
| |
llvm-svn: 71823
|