Eli Friedman
a6638ca3a3
Delete method which is now trivial.
...
llvm-svn: 73043
2009-06-08 05:08:54 +00:00
Eli Friedman
9e81b02ec5
Don't allow defining a block with a non-prototype type. Remove a
...
hack which introduces some strange inconsistencies in compatibility
for block pointers.
Note that unlike an earlier revision proposed on cfe-commits, this patch
still allows declaring block pointers without a prototype.
llvm-svn: 73041
2009-06-08 04:24:21 +00:00
Anders Carlsson
0880e9f58d
Instantiation support for more Obj-C expressions, string literals, @selector and @protocol expressions.
...
llvm-svn: 73036
2009-06-07 19:51:47 +00:00
Fariborz Jahanian
28c5a8ba4a
Adds synthesize ivars to DeclContext.
...
llvm-svn: 73000
2009-06-06 16:36:41 +00:00
Anders Carlsson
8544647e9c
Make ParmVarDecl::getDefaultArg() more robust, it now asserts that the argument is not unparsed. Add a new hasDefaultArg() and use it in places where getDefaultArg() was called when the argument was unparsed.
...
llvm-svn: 72984
2009-06-06 04:14:07 +00:00
Mike Stump
dedc0968cf
Avoid warnings.
...
llvm-svn: 72976
2009-06-05 23:49:48 +00:00
Fariborz Jahanian
6845383426
Use of DeclContext for objc's ivars. No functionality
...
change. More to follow.
llvm-svn: 72951
2009-06-05 18:16:35 +00:00
Anders Carlsson
b3d05d6d11
Improvements to CXXExprWithTemporaries in preparation for fixing a bug with default arguments that have temporaries.
...
llvm-svn: 72944
2009-06-05 15:38:08 +00:00
Eli Friedman
9ffd4a9b96
Move CharIsSigned from TargetInfo to LangOptions.
...
llvm-svn: 72928
2009-06-05 07:05:05 +00:00
Anders Carlsson
184cb4123e
Make TemplateArgumentListBuilder take an ASTContext (because we're probably going to need it later). Move push_back to the .cpp file. If the passed in template argument is a type, assert that it's canonical.
...
llvm-svn: 72918
2009-06-05 05:31:27 +00:00
Anders Carlsson
c8e7113a9f
Make the TemplateArgumentList take a TemplateArgumentListBuilder.
...
llvm-svn: 72917
2009-06-05 04:47:51 +00:00
Anders Carlsson
1b28c3efe2
Change the specialization decls to take a TemplateArgumentListBuilder.
...
llvm-svn: 72916
2009-06-05 04:06:48 +00:00
Eli Friedman
fa90b154ca
Minor simplification.
...
llvm-svn: 72887
2009-06-04 20:23:20 +00:00
Eli Friedman
4a4fefcd29
PR4326: Handle constant evaluation for void* pointer subtraction
...
correctly.
llvm-svn: 72886
2009-06-04 20:04:03 +00:00
Anders Carlsson
40f8f8d4d7
Minor improvements to template parameter writing.
...
llvm-svn: 72848
2009-06-04 05:37:43 +00:00
Douglas Gregor
6cc628edf4
Eliminate a warning
...
llvm-svn: 72846
2009-06-04 05:28:55 +00:00
Fariborz Jahanian
7c80959a97
Cleanup/Refactoring of ivar collection. No change in functionality.
...
llvm-svn: 72827
2009-06-04 01:19:09 +00:00
Douglas Gregor
5cdac0a52e
Template argument deduction for references
...
llvm-svn: 72822
2009-06-04 00:21:18 +00:00
Fariborz Jahanian
b68215c4de
Place the GC attribute on the same relative pointer
...
position to make it consistant and to match gcc's behavior,
by placing it at the inner-most pointer.
llvm-svn: 72784
2009-06-03 17:15:17 +00:00
Argyrios Kyrtzidis
b1d51aa18a
Use "()" instead of "(void)" when pretty-printing a parameter-less function type for C++.
...
llvm-svn: 72747
2009-06-03 02:06:50 +00:00
Fariborz Jahanian
991a2b1933
Diagnose misuse of __strong attribute in a redeclaration.
...
llvm-svn: 72737
2009-06-02 20:58:58 +00:00
Fariborz Jahanian
6ab4375f87
Issue diagnostics on __weak attribute mismatch.
...
Fixes an error recovery issue which caused a crash.
llvm-svn: 72733
2009-06-02 18:32:00 +00:00
Eli Friedman
5aa28de4fe
Fix a silly typo in my previous objc_gc merging patch.
...
llvm-svn: 72723
2009-06-02 07:45:37 +00:00
Eli Friedman
091a9ac014
Cleaned-up version of gc attribute type merging. I still don't like it
...
very much, but I have a feeling we're never going to have an
implementation that makes sense because of compatibility issues.
llvm-svn: 72715
2009-06-02 05:28:56 +00:00
Fariborz Jahanian
2d725b19da
This patch attempts to fix the merging of __strong/__weak attributes
...
in merge_types. It is incomplete. We probably want to issue
a warning if user attempts to change the attribute from __weak to
__strong or vice-vera. It also assumes that a __weak/__strong
attribute can not be specified with other (currently one) type
attriute.
llvm-svn: 72711
2009-06-02 01:40:22 +00:00
Fariborz Jahanian
c6d9800564
A corner case of objc2 gc's write-barrier generation
...
for the Next runtime.
llvm-svn: 72703
2009-06-01 21:29:32 +00:00
Eli Friedman
dcca6333c6
Disable type merging with gc attributes. This has a number of nasty
...
properties at the moment:
1. It allows stuff like "__strong id x; __weak id x;".
2. For constructs like "__strong id x; id x;", subsequent references to
x lose the objc_gc attribute.
3. This incorrectly allows merges involving the address_space attribute.
4. Constructs like "id x; /* some code using x */ __weak id x;" don't
apply the objc_gc attribute consistently to all uses of x.
The first three can probably be fixed relatively easily; the fourth
would be extremely difficult to fix.
llvm-svn: 72683
2009-06-01 01:22:52 +00:00
Douglas Gregor
2373c599b5
Initial infrastructure for class template partial specialization. Here
...
we have the basics of declaring and storing class template partial
specializations, matching class template partial specializations at
instantiation time via (limited) template argument deduction, and
using the class template partial specialization's pattern for
instantiation.
This patch is enough to make a simple is_pointer type trait work, but
not much else.
llvm-svn: 72662
2009-05-31 09:31:02 +00:00
Douglas Gregor
7a1a7cb09d
Add a little FIXME for C++ class printing
...
llvm-svn: 72660
2009-05-31 07:13:39 +00:00
Anders Carlsson
73b836bf3d
Clean up the newly added C++ AST nodes.
...
llvm-svn: 72643
2009-05-30 22:38:53 +00:00
Anders Carlsson
4f44fd5c6f
Get rid of CXXTempVarDecl.
...
llvm-svn: 72637
2009-05-30 21:10:34 +00:00
Eli Friedman
f7f9f68722
Some small fixes for fields of reference type.
...
llvm-svn: 72636
2009-05-30 21:09:44 +00:00
Anders Carlsson
a29ded9ba8
Stop using CXXTempVarDecl and use CXXTemporary instead.
...
llvm-svn: 72634
2009-05-30 21:05:25 +00:00
Anders Carlsson
4b2434da54
Remove VarDecl from CXXConstructExpr.
...
llvm-svn: 72633
2009-05-30 20:56:46 +00:00
Anders Carlsson
ffda606612
Small fixes to CXXTemporary and CXXBindTemporaryExpr.
...
llvm-svn: 72628
2009-05-30 20:34:37 +00:00
Anders Carlsson
993a4b3080
Add a CXXBindTemporaryExpr.
...
llvm-svn: 72627
2009-05-30 20:03:25 +00:00
Anders Carlsson
f337d8c515
Add a CXXTemporary class. Not used yet.
...
llvm-svn: 72626
2009-05-30 19:54:15 +00:00
Mike Stump
b807c9c622
Cleqnup ideas from Chris, thanks.
...
llvm-svn: 72621
2009-05-30 14:43:18 +00:00
Douglas Gregor
5f478b78c0
AST printing for C++ base classes
...
llvm-svn: 72617
2009-05-30 06:58:37 +00:00
Douglas Gregor
182319375a
Pretty printing and improved representation for namespace alias declarations
...
llvm-svn: 72616
2009-05-30 06:48:27 +00:00
Eli Friedman
1730424516
Add a hack to prevent us from printing out the __builtin_va_list
...
declaration in -ast-print mode.
llvm-svn: 72615
2009-05-30 06:35:22 +00:00
Douglas Gregor
3bc6e4c72a
Printing for using directives, e.g.,
...
using namespace std::debug;
Extended UsingDirectiveDecl to store the nested-name-specifier that
precedes the nominated namespace.
llvm-svn: 72614
2009-05-30 06:31:56 +00:00
Douglas Gregor
2d042f1cf4
Never suppress specifiers when printing the parameters of a function
...
declaration.
llvm-svn: 72613
2009-05-30 05:39:39 +00:00
Eli Friedman
c4fc839c57
Pass an ASTContext into Stmt::printPretty.
...
llvm-svn: 72612
2009-05-30 05:32:46 +00:00
Eli Friedman
ef334fdfa2
Add a Stmt::printPretty overload which takes an ASTContext; start
...
transitioning callers over to pass one in.
llvm-svn: 72609
2009-05-30 05:03:24 +00:00
Eli Friedman
796358498f
Expose an API to print a group of decls (like "int a,b;").
...
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
2009-05-30 04:20:30 +00:00
Mike Stump
2346cd2a10
Improve __builtin_nanf support; we now can deal with them as constants.
...
llvm-svn: 72607
2009-05-30 03:56:50 +00:00
Eli Friedman
258ffef5b5
Fix some test failures involving -ast-print.
...
llvm-svn: 72605
2009-05-30 01:45:29 +00:00
Douglas Gregor
36098ff480
Clean up printing for Objective-C, designated initializers.
...
llvm-svn: 72602
2009-05-30 00:56:08 +00:00
Eli Friedman
15ea880358
Some enhancements to DeclStmt printing. Some of this should
...
move to DeclPrinter.cpp, but I haven't quite worked out how best to do
that.
llvm-svn: 72599
2009-05-30 00:19:54 +00:00