]> granicus.if.org Git - clang/log
clang
15 years agoMore PCH documentation
Douglas Gregor [Tue, 2 Jun 2009 22:08:07 +0000 (22:08 +0000)]
More PCH documentation

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72743 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd clang-cc support for -disable-llvm-optzns.
Daniel Dunbar [Tue, 2 Jun 2009 22:07:45 +0000 (22:07 +0000)]
Add clang-cc support for -disable-llvm-optzns.
 - Avoids running any LLVM optimizations, even at -O2, etc., while still keeping
   any language changes these optimizations imply.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72742 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoDiagnose misuse of __strong attribute in a redeclaration.
Fariborz Jahanian [Tue, 2 Jun 2009 20:58:58 +0000 (20:58 +0000)]
Diagnose misuse of __strong attribute in a redeclaration.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72737 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoIssue diagnostics on __weak attribute mismatch.
Fariborz Jahanian [Tue, 2 Jun 2009 18:32:00 +0000 (18:32 +0000)]
Issue diagnostics on __weak attribute mismatch.
Fixes an error recovery issue which caused a crash.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72733 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMissing file for __builtin_unwind_init support.
Eli Friedman [Tue, 2 Jun 2009 09:39:16 +0000 (09:39 +0000)]
Missing file for __builtin_unwind_init support.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72728 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd support for __builtin_unwind_init.
Eli Friedman [Tue, 2 Jun 2009 09:37:50 +0000 (09:37 +0000)]
Add support for __builtin_unwind_init.

Also, committing an #if 0'ed __builtin_setjmp and __builtin_longjmp
implementation I've had sitting in my tree for a while.  I haven't
enabled it because the LLVM backend support isn't complete yet.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72727 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoPR4142: Add %m format string specifier.
Eli Friedman [Tue, 2 Jun 2009 08:36:19 +0000 (08:36 +0000)]
PR4142: Add %m format string specifier.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72726 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoA couple minor corrections to the "GCC extensions not implemented yet"
Eli Friedman [Tue, 2 Jun 2009 08:21:31 +0000 (08:21 +0000)]
A couple minor corrections to the "GCC extensions not implemented yet"
section of the users manual.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72725 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoPR4288: Make -dD (dump macros with preprocessed source) play nicely with
Eli Friedman [Tue, 2 Jun 2009 07:55:39 +0000 (07:55 +0000)]
PR4288: Make -dD (dump macros with preprocessed source) play nicely with
# line directives.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72724 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix a silly typo in my previous objc_gc merging patch.
Eli Friedman [Tue, 2 Jun 2009 07:45:37 +0000 (07:45 +0000)]
Fix a silly typo in my previous objc_gc merging patch.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72723 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoIf we recognize alloca, treat it as a builtin. This fixes uses of
Eli Friedman [Tue, 2 Jun 2009 07:10:30 +0000 (07:10 +0000)]
If we recognize alloca, treat it as a builtin.  This fixes uses of
alloca without declaring it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72719 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd builtin declarations for the variants of sin and cos.
Eli Friedman [Tue, 2 Jun 2009 07:06:02 +0000 (07:06 +0000)]
Add builtin declarations for the variants of sin and cos.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72718 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd aliases for a couple of SSE intrinsics. Patch by Ed Schouten.
Eli Friedman [Tue, 2 Jun 2009 05:55:48 +0000 (05:55 +0000)]
Add aliases for a couple of SSE intrinsics.  Patch by Ed Schouten.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72717 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd --shared option.
Eli Friedman [Tue, 2 Jun 2009 05:46:32 +0000 (05:46 +0000)]
Add --shared option.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72716 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCleaned-up version of gc attribute type merging. I still don't like it
Eli Friedman [Tue, 2 Jun 2009 05:28:56 +0000 (05:28 +0000)]
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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72715 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRemove test which doesn't pass with gcc.
Eli Friedman [Tue, 2 Jun 2009 05:24:36 +0000 (05:24 +0000)]
Remove test which doesn't pass with gcc.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72714 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd floating point details to PIC16 Target.
Sanjiv Gupta [Tue, 2 Jun 2009 04:43:46 +0000 (04:43 +0000)]
Add floating point details to PIC16 Target.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72713 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoThis patch attempts to fix the merging of __strong/__weak attributes
Fariborz Jahanian [Tue, 2 Jun 2009 01:40:22 +0000 (01:40 +0000)]
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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72711 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix rare failure of .ver-svn creation, it has a dependency that the output
Daniel Dunbar [Mon, 1 Jun 2009 22:15:35 +0000 (22:15 +0000)]
Fix rare failure of .ver-svn creation, it has a dependency that the output
directory exist.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72704 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoA corner case of objc2 gc's write-barrier generation
Fariborz Jahanian [Mon, 1 Jun 2009 21:29:32 +0000 (21:29 +0000)]
A corner case of objc2 gc's write-barrier generation
for the Next runtime.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72703 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFixed a test case which I am to blame for making it
Fariborz Jahanian [Mon, 1 Jun 2009 17:40:54 +0000 (17:40 +0000)]
Fixed a test case which I am to blame for making it
not runaable.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72695 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUpdate test case.
Daniel Dunbar [Mon, 1 Jun 2009 17:27:37 +0000 (17:27 +0000)]
Update test case.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72694 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix a bug in hasEmptyExceptionSpec. (Thanks Sebastian for noticing).
Anders Carlsson [Mon, 1 Jun 2009 15:02:12 +0000 (15:02 +0000)]
Fix a bug in hasEmptyExceptionSpec. (Thanks Sebastian for noticing).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72691 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoPR4289: Make sure "&func" has the right LLVM type when "func" is a
Eli Friedman [Mon, 1 Jun 2009 10:04:20 +0000 (10:04 +0000)]
PR4289: Make sure "&func" has the right LLVM type when "func" is a
K&R-style definition.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72690 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoPR4287: allow a variadic prototype to make a subsequent K&R style
Eli Friedman [Mon, 1 Jun 2009 09:24:59 +0000 (09:24 +0000)]
PR4287: allow a variadic prototype to make a subsequent K&R style
definition variadic.  I'm not completely sure it's legal, but the
standard can be interpreted as making it legal, and gcc seems to think
it's legal, so I didn't add an extension warning.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72689 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSimplify run line.
Eli Friedman [Mon, 1 Jun 2009 08:55:08 +0000 (08:55 +0000)]
Simplify run line.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72687 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoPR4283: Don't truncate multibyte character constants in the
Eli Friedman [Mon, 1 Jun 2009 05:25:02 +0000 (05:25 +0000)]
PR4283: Don't truncate multibyte character constants in the
preprocessor.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72686 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoDisable type merging with gc attributes. This has a number of nasty
Eli Friedman [Mon, 1 Jun 2009 01:22:52 +0000 (01:22 +0000)]
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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72683 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUnify coding style.
Zhongxing Xu [Mon, 1 Jun 2009 00:50:23 +0000 (00:50 +0000)]
Unify coding style.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72682 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUse a reference to modify the DeclIDs map.
Zhongxing Xu [Mon, 1 Jun 2009 00:49:11 +0000 (00:49 +0000)]
Use a reference to modify the DeclIDs map.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72681 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAfter spending 15 minutes trying to figure out why this was crashing, I realized...
Anders Carlsson [Mon, 1 Jun 2009 00:40:08 +0000 (00:40 +0000)]
After spending 15 minutes trying to figure out why this was crashing, I realized it was a bug in the test case :)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72680 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix a thinko.
Anders Carlsson [Mon, 1 Jun 2009 00:26:14 +0000 (00:26 +0000)]
Fix a thinko.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72679 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCheck for null correctly for new expressions.
Anders Carlsson [Mon, 1 Jun 2009 00:05:16 +0000 (00:05 +0000)]
Check for null correctly for new expressions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72678 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoImprove irgen of 'new' further.
Anders Carlsson [Sun, 31 May 2009 21:53:59 +0000 (21:53 +0000)]
Improve irgen of 'new' further.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72677 91177308-0d34-0410-b5e6-96231b3b80d8

15 years ago...and aggregate POD types.
Anders Carlsson [Sun, 31 May 2009 21:12:26 +0000 (21:12 +0000)]
...and aggregate POD types.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72676 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSupport for complex types.
Anders Carlsson [Sun, 31 May 2009 21:07:58 +0000 (21:07 +0000)]
Support for complex types.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72675 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoBetter support for scalar POD types in 'new' expressions.
Anders Carlsson [Sun, 31 May 2009 20:56:36 +0000 (20:56 +0000)]
Better support for scalar POD types in 'new' expressions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72674 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMake sure to copy back arguments that can be changed by FindAllocationOverload. This...
Anders Carlsson [Sun, 31 May 2009 20:26:12 +0000 (20:26 +0000)]
Make sure to copy back arguments that can be changed by FindAllocationOverload. This fixes placement new. (Sebastian, please review).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72673 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoVery basic irgen support for new expressions.
Anders Carlsson [Sun, 31 May 2009 20:21:44 +0000 (20:21 +0000)]
Very basic irgen support for new expressions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72672 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoDon't try to call getFileCharacteristic if the function declaration has an invalid...
Anders Carlsson [Sun, 31 May 2009 20:19:23 +0000 (20:19 +0000)]
Don't try to call getFileCharacteristic if the function declaration has an invalid source location (as is the case for the global allocation functions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72671 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix an off by one error when trying to perform copy initialization of operator new...
Anders Carlsson [Sun, 31 May 2009 19:49:47 +0000 (19:49 +0000)]
Fix an off by one error when trying to perform copy initialization of operator new and operator delete arguments. Sebastian, please review.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72670 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoDowngrade an error about "return in a no-return function" from being
Chris Lattner [Sun, 31 May 2009 19:32:13 +0000 (19:32 +0000)]
Downgrade an error about "return in a no-return function" from being
an error to being a warning that defaults to error.  If you want this to
be a warning, you have to explicitly pass -Winvalid-noreturn to clang to
map it back to a warning.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72669 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoDisallow exception specs on typedefs.
Sebastian Redl [Sun, 31 May 2009 11:47:27 +0000 (11:47 +0000)]
Disallow exception specs on typedefs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72664 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix for PR4285: allow intializing a const wchar_t array with a wide
Eli Friedman [Sun, 31 May 2009 10:54:53 +0000 (10:54 +0000)]
Fix for PR4285: allow intializing a const wchar_t array with a wide
string.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72663 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoInitial infrastructure for class template partial specialization. Here
Douglas Gregor [Sun, 31 May 2009 09:31:02 +0000 (09:31 +0000)]
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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72662 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd a little FIXME for C++ class printing
Douglas Gregor [Sun, 31 May 2009 07:13:39 +0000 (07:13 +0000)]
Add a little FIXME for C++ class printing

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72660 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUnbreak the clang build by applying the same temporary
Duncan Sands [Sun, 31 May 2009 04:09:57 +0000 (04:09 +0000)]
Unbreak the clang build by applying the same temporary
workaround for machine code emitter changes as was used
in llvm-gcc.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72657 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd a new function for emitting new functions.
Anders Carlsson [Sun, 31 May 2009 01:40:14 +0000 (01:40 +0000)]
Add a new function for emitting new functions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72656 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoEmit destructors correctly for temporaries.
Anders Carlsson [Sun, 31 May 2009 00:34:10 +0000 (00:34 +0000)]
Emit destructors correctly for temporaries.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72655 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoWhen possible, don't emit the cleanup block. Instead, just move the instructions...
Anders Carlsson [Sun, 31 May 2009 00:33:20 +0000 (00:33 +0000)]
When possible, don't emit the cleanup block. Instead, just move the instructions to the current block.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72654 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoImplement VisitCXXExprWithTemporaries for complex expressions.
Anders Carlsson [Sun, 31 May 2009 00:12:05 +0000 (00:12 +0000)]
Implement VisitCXXExprWithTemporaries for complex expressions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72653 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCall EmitCXXExprWithTemporaries.
Anders Carlsson [Sun, 31 May 2009 00:09:15 +0000 (00:09 +0000)]
Call EmitCXXExprWithTemporaries.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72652 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd more getters to the new AST nodes.
Anders Carlsson [Sun, 31 May 2009 00:08:52 +0000 (00:08 +0000)]
Add more getters to the new AST nodes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72651 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd lvalue irgen support for CXXBindTemporaryExpr.
Anders Carlsson [Sat, 30 May 2009 23:30:54 +0000 (23:30 +0000)]
Add lvalue irgen support for CXXBindTemporaryExpr.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72649 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMore temporary support.
Anders Carlsson [Sat, 30 May 2009 23:23:33 +0000 (23:23 +0000)]
More temporary support.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72648 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoForgot the implementation. Thanks Eli.
Anders Carlsson [Sat, 30 May 2009 22:51:20 +0000 (22:51 +0000)]
Forgot the implementation. Thanks Eli.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72647 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd RemoveOutermostTemporaryBinding. Not used yet.
Anders Carlsson [Sat, 30 May 2009 22:47:03 +0000 (22:47 +0000)]
Add RemoveOutermostTemporaryBinding. Not used yet.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72644 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoClean up the newly added C++ AST nodes.
Anders Carlsson [Sat, 30 May 2009 22:38:53 +0000 (22:38 +0000)]
Clean up the newly added C++ AST nodes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72643 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoIt's OK for a full expr to be null. This fixes the failing test cases.
Anders Carlsson [Sat, 30 May 2009 22:24:16 +0000 (22:24 +0000)]
It's OK for a full expr to be null. This fixes the failing test cases.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72642 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoActOnReturnStmt should also take a FullExprArg.
Anders Carlsson [Sat, 30 May 2009 21:42:34 +0000 (21:42 +0000)]
ActOnReturnStmt should also take a FullExprArg.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72641 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAddInitializerToDecl needs to take a full expression.
Anders Carlsson [Sat, 30 May 2009 21:37:25 +0000 (21:37 +0000)]
AddInitializerToDecl needs to take a full expression.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72640 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUpdate Xcode project
Anders Carlsson [Sat, 30 May 2009 21:32:24 +0000 (21:32 +0000)]
Update Xcode project

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72639 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd the newly created temporary to the ExprTemporaries stack.
Anders Carlsson [Sat, 30 May 2009 21:21:49 +0000 (21:21 +0000)]
Add the newly created temporary to the ExprTemporaries stack.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72638 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoGet rid of CXXTempVarDecl.
Anders Carlsson [Sat, 30 May 2009 21:10:34 +0000 (21:10 +0000)]
Get rid of CXXTempVarDecl.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72637 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSome small fixes for fields of reference type.
Eli Friedman [Sat, 30 May 2009 21:09:44 +0000 (21:09 +0000)]
Some small fixes for fields of reference type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72636 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoStop using CXXTempVarDecl and use CXXTemporary instead.
Anders Carlsson [Sat, 30 May 2009 21:05:25 +0000 (21:05 +0000)]
Stop using CXXTempVarDecl and use CXXTemporary instead.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72634 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRemove VarDecl from CXXConstructExpr.
Anders Carlsson [Sat, 30 May 2009 20:56:46 +0000 (20:56 +0000)]
Remove VarDecl from CXXConstructExpr.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72633 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoBind temporaries correctly when instantiating expressions.
Anders Carlsson [Sat, 30 May 2009 20:52:37 +0000 (20:52 +0000)]
Bind temporaries correctly when instantiating expressions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72632 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRemove VarDecl from CheckInitializerTypes now that CXXConstructExpr doesn't need...
Anders Carlsson [Sat, 30 May 2009 20:41:30 +0000 (20:41 +0000)]
Remove VarDecl from CheckInitializerTypes now that CXXConstructExpr doesn't need to take a VarDecl anymore. (It still does, but it won't for long)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72630 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd Sema::MaybeBindToTemporary which takes an expression and (if needed) wraps it...
Anders Carlsson [Sat, 30 May 2009 20:36:53 +0000 (20:36 +0000)]
Add Sema::MaybeBindToTemporary which takes an expression and (if needed) wraps it in a CXXBindTemporaryExpr. Use this when creating CXXTemporaryObjectExprs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72629 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSmall fixes to CXXTemporary and CXXBindTemporaryExpr.
Anders Carlsson [Sat, 30 May 2009 20:34:37 +0000 (20:34 +0000)]
Small fixes to CXXTemporary and CXXBindTemporaryExpr.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72628 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd a CXXBindTemporaryExpr.
Anders Carlsson [Sat, 30 May 2009 20:03:25 +0000 (20:03 +0000)]
Add a CXXBindTemporaryExpr.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72627 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd a CXXTemporary class. Not used yet.
Anders Carlsson [Sat, 30 May 2009 19:54:15 +0000 (19:54 +0000)]
Add a CXXTemporary class. Not used yet.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72626 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoReplace a cast with a dyn_cast as suggested by Doug.
Anders Carlsson [Sat, 30 May 2009 17:26:39 +0000 (17:26 +0000)]
Replace a cast with a dyn_cast as suggested by Doug.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72624 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCleqnup ideas from Chris, thanks.
Mike Stump [Sat, 30 May 2009 14:43:18 +0000 (14:43 +0000)]
Cleqnup ideas from Chris, thanks.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72621 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAST printing for C++ base classes
Douglas Gregor [Sat, 30 May 2009 06:58:37 +0000 (06:58 +0000)]
AST printing for C++ base classes

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72617 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoPretty printing and improved representation for namespace alias declarations
Douglas Gregor [Sat, 30 May 2009 06:48:27 +0000 (06:48 +0000)]
Pretty printing and improved representation for namespace alias declarations

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72616 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd a hack to prevent us from printing out the __builtin_va_list
Eli Friedman [Sat, 30 May 2009 06:35:22 +0000 (06:35 +0000)]
Add a hack to prevent us from printing out the __builtin_va_list
declaration in -ast-print mode.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72615 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoPrinting for using directives, e.g.,
Douglas Gregor [Sat, 30 May 2009 06:31:56 +0000 (06:31 +0000)]
Printing for using directives, e.g.,

  using namespace std::debug;

Extended UsingDirectiveDecl to store the nested-name-specifier that
precedes the nominated namespace.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72614 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoNever suppress specifiers when printing the parameters of a function
Douglas Gregor [Sat, 30 May 2009 05:39:39 +0000 (05:39 +0000)]
Never suppress specifiers when printing the parameters of a function
declaration.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72613 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoPass an ASTContext into Stmt::printPretty.
Eli Friedman [Sat, 30 May 2009 05:32:46 +0000 (05:32 +0000)]
Pass an ASTContext into Stmt::printPretty.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72612 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoPass an ASTContext into Stmt::printPretty.
Eli Friedman [Sat, 30 May 2009 05:19:26 +0000 (05:19 +0000)]
Pass an ASTContext into Stmt::printPretty.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72611 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd a Stmt::printPretty overload which takes an ASTContext; start
Eli Friedman [Sat, 30 May 2009 05:03:24 +0000 (05:03 +0000)]
Add a Stmt::printPretty overload which takes an ASTContext; start
transitioning callers over to pass one in.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72609 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoExpose an API to print a group of decls (like "int a,b;").
Eli Friedman [Sat, 30 May 2009 04:20:30 +0000 (04:20 +0000)]
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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72608 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoImprove __builtin_nanf support; we now can deal with them as constants.
Mike Stump [Sat, 30 May 2009 03:56:50 +0000 (03:56 +0000)]
Improve __builtin_nanf support; we now can deal with them as constants.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72607 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix some test failures involving -ast-print.
Eli Friedman [Sat, 30 May 2009 01:45:29 +0000 (01:45 +0000)]
Fix some test failures involving -ast-print.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72605 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoClean up printing for Objective-C, designated initializers.
Douglas Gregor [Sat, 30 May 2009 00:56:08 +0000 (00:56 +0000)]
Clean up printing for Objective-C, designated initializers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72602 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd a member lookup criteria constructor for searching for overridden virtual member...
Anders Carlsson [Sat, 30 May 2009 00:52:53 +0000 (00:52 +0000)]
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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72601 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSome enhancements to DeclStmt printing. Some of this should
Eli Friedman [Sat, 30 May 2009 00:19:54 +0000 (00:19 +0000)]
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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72599 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd support for PrintingPolicy::SuppressTypeSpecifiers to type printing.
Eli Friedman [Sat, 30 May 2009 00:10:16 +0000 (00:10 +0000)]
Add support for PrintingPolicy::SuppressTypeSpecifiers to type printing.
(I have a work-in-progress patch which uses this.)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72598 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRefactor and clean up the AST printer, so that it uses a DeclVisitor,
Douglas Gregor [Sat, 30 May 2009 00:08:05 +0000 (00:08 +0000)]
Refactor and clean up the AST printer, so that it uses a DeclVisitor,
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().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72597 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMake the LookupBase boolean an enum instead.
Anders Carlsson [Fri, 29 May 2009 23:42:05 +0000 (23:42 +0000)]
Make the LookupBase boolean an enum instead.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72594 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd code for emitting C++ destructors. Not used yet.
Anders Carlsson [Fri, 29 May 2009 21:03:38 +0000 (21:03 +0000)]
Add code for emitting C++ destructors. Not used yet.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72591 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCreate a new PrintingPolicy class, which we pass down through the AST
Douglas Gregor [Fri, 29 May 2009 20:38:28 +0000 (20:38 +0000)]
Create a new PrintingPolicy class, which we pass down through the AST
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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72590 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMake sure we don't give the wrong warning, and make sure not to set
Eli Friedman [Fri, 29 May 2009 20:20:05 +0000 (20:20 +0000)]
Make sure we don't give the wrong warning, and make sure not to set
hadError (suppressing future diagnostics) if we didn't print an
error.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72588 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd an assertion so that we don't accidentally build constant arrays of
Eli Friedman [Fri, 29 May 2009 20:17:55 +0000 (20:17 +0000)]
Add an assertion so that we don't accidentally build constant arrays of
VLAs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72587 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRe-add a slightly more general version of the check from r72578; it is
Eli Friedman [Fri, 29 May 2009 19:23:46 +0000 (19:23 +0000)]
Re-add a slightly more general version of the check from r72578; it is
actually necessary in some obscure cases.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72585 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoOops, the testcase I was thinking of is supposed to error out. I
Mike Stump [Fri, 29 May 2009 19:14:13 +0000 (19:14 +0000)]
Oops, the testcase I was thinking of is supposed to error out.  I
tried other things that might trip, but they all worked.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72584 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd a couple missing ARM defines.
Eli Friedman [Fri, 29 May 2009 19:00:15 +0000 (19:00 +0000)]
Add a couple missing ARM defines.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72583 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoReduce the amount of stack space we use in SmallVectors during
Douglas Gregor [Fri, 29 May 2009 18:27:38 +0000 (18:27 +0000)]
Reduce the amount of stack space we use in SmallVectors during
template instantiation. This helps reduce our stack footprint when
performing deep template instantiations.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72582 91177308-0d34-0410-b5e6-96231b3b80d8