- May 30, 2009
-
-
Anders Carlsson authored
llvm-svn: 72627
-
Anders Carlsson authored
llvm-svn: 72626
-
Anders Carlsson authored
llvm-svn: 72624
-
Mike Stump authored
llvm-svn: 72621
-
Douglas Gregor authored
llvm-svn: 72617
-
Douglas Gregor authored
llvm-svn: 72616
-
Eli Friedman authored
declaration in -ast-print mode. llvm-svn: 72615
-
Douglas Gregor authored
using namespace std::debug; Extended UsingDirectiveDecl to store the nested-name-specifier that precedes the nominated namespace. llvm-svn: 72614
-
Douglas Gregor authored
declaration. llvm-svn: 72613
-
Eli Friedman authored
llvm-svn: 72612
-
Eli Friedman authored
llvm-svn: 72611
-
Eli Friedman authored
transitioning callers over to pass one in. llvm-svn: 72609
-
Eli Friedman authored
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
-
Mike Stump authored
llvm-svn: 72607
-
Eli Friedman authored
llvm-svn: 72605
-
Douglas Gregor authored
llvm-svn: 72602
-
Anders Carlsson authored
Add a member lookup criteria constructor for searching for overridden virtual member functions. Use this instead of regular name lookup when checking for overriding functions so we will see declarations that would otherwise be hidden. Fixes 6902298. llvm-svn: 72601
-
Eli Friedman authored
move to DeclPrinter.cpp, but I haven't quite worked out how best to do that. llvm-svn: 72599
-
Eli Friedman authored
(I have a work-in-progress patch which uses this.) llvm-svn: 72598
-
Douglas Gregor authored
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
-
Anders Carlsson authored
llvm-svn: 72594
-
- May 29, 2009
-
-
Anders Carlsson authored
llvm-svn: 72591
-
Douglas Gregor authored
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
-
Eli Friedman authored
hadError (suppressing future diagnostics) if we didn't print an error. llvm-svn: 72588
-
Eli Friedman authored
VLAs. llvm-svn: 72587
-
Eli Friedman authored
actually necessary in some obscure cases. llvm-svn: 72585
-
Mike Stump authored
tried other things that might trip, but they all worked. llvm-svn: 72584
-
Eli Friedman authored
llvm-svn: 72583
-
Douglas Gregor authored
template instantiation. This helps reduce our stack footprint when performing deep template instantiations. llvm-svn: 72582
-
Eli Friedman authored
handle the construct in question correctly. llvm-svn: 72581
-
Sebastian Redl authored
llvm-svn: 72580
-
Mike Stump authored
llvm-svn: 72578
-
Mike Stump authored
a vla is used. llvm-svn: 72575
-
Mike Stump authored
any body can spot codegen bugs with volatile, or knows of any in the bug database, let me know. llvm-svn: 72572
-
Sebastian Redl authored
llvm-svn: 72571
-
Douglas Gregor authored
llvm-svn: 72570
-
Douglas Gregor authored
instantiation of tags local to member functions of class templates (and, eventually, function templates) works when the tag is defined as part of the decl-specifier-seq, e.g., struct S { T x, y; } s1; Also, make sure that we don't try to default-initialize a dependent type. llvm-svn: 72568
-
Eli Friedman authored
to the DeclGroup. llvm-svn: 72559
-
Douglas Gregor authored
specifier resulted in the creation of a new TagDecl node, which happens either when the tag specifier was a definition or when the tag specifier was the first declaration of that tag type. This information has several uses, the first of which is implemented in this commit: 1) In C++, one is not allowed to define tag types within a type specifier (e.g., static_cast<struct S { int x; } *>(0) is ill-formed) or within the result or parameter types of a function. We now diagnose this. 2) We can extend DeclGroups to contain information about any tags that are declared/defined within the declaration specifiers of a variable, e.g., struct Point { int x, y, z; } p; This will help improve AST printing and template instantiation, among other things. 3) For C99, we can keep track of whether a tag type is defined within the type of a parameter, to properly cope with cases like, e.g., int bar(struct T2 { int x; } y) { struct T2 z; } We can also do similar things wherever there is a type specifier, e.g., to keep track of where the definition of S occurs in this legal C99 code: (struct S { int x, y; } *)0 llvm-svn: 72555
-
Eli Friedman authored
getUnqualifiedType() doesn't strip off all qualifiers for non-canonical types. llvm-svn: 72552
-