]> granicus.if.org Git - clang/log
clang
14 years agoAST import for forward declarations of Objective-C protocols
Douglas Gregor [Thu, 18 Feb 2010 02:12:22 +0000 (02:12 +0000)]
AST import for forward declarations of Objective-C protocols

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

14 years agoImplement import of forward declarations of Objective-C classes
Douglas Gregor [Thu, 18 Feb 2010 02:04:09 +0000 (02:04 +0000)]
Implement import of forward declarations of Objective-C classes

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

14 years agoAllow redefinitions of extern inline functions in GNU89 mode, just as GCC
Charles Davis [Thu, 18 Feb 2010 02:00:42 +0000 (02:00 +0000)]
Allow redefinitions of extern inline functions in GNU89 mode, just as GCC
does. Fixes PR5253.

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

14 years agoAST import of Objective-C categories.
Douglas Gregor [Thu, 18 Feb 2010 01:47:50 +0000 (01:47 +0000)]
AST import of Objective-C categories.

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

14 years ago__typeof should be able to handle block pointer types when
Fariborz Jahanian [Thu, 18 Feb 2010 01:20:22 +0000 (01:20 +0000)]
__typeof should be able to handle block pointer types when
rewriting. Fixes radar 7659483.

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

14 years agoDon't diagnose overflow in case statements when the conversion is a
Douglas Gregor [Thu, 18 Feb 2010 00:56:01 +0000 (00:56 +0000)]
Don't diagnose overflow in case statements when the conversion is a
signed<->unsigned conversion with the same bit width. Fixes
<rdar://problem/7658121>.

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

14 years agoRecognize attributes ns_returns_not_retained and cf_returns_not_retained
Ted Kremenek [Thu, 18 Feb 2010 00:06:12 +0000 (00:06 +0000)]
Recognize attributes ns_returns_not_retained and cf_returns_not_retained
in the static analyzer.

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

14 years agoAdd __has_feature support for attributes ns_returns_not_retained
Ted Kremenek [Thu, 18 Feb 2010 00:06:04 +0000 (00:06 +0000)]
Add __has_feature support for attributes ns_returns_not_retained
and cf_returns_not_retained.

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

14 years agoSort @includes.
Ted Kremenek [Thu, 18 Feb 2010 00:05:58 +0000 (00:05 +0000)]
Sort @includes.

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

14 years agoSort cases.
Ted Kremenek [Thu, 18 Feb 2010 00:05:52 +0000 (00:05 +0000)]
Sort cases.

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

14 years agoAdd 'ns_returns_not_retained' and 'cf_returns_not_retained' attributes to
Ted Kremenek [Thu, 18 Feb 2010 00:05:45 +0000 (00:05 +0000)]
Add 'ns_returns_not_retained' and 'cf_returns_not_retained' attributes to
match 'ns_returns_retained' and 'cf_returns_retained' respectively.  These
are not yet hooked up to the static analyzer.

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

14 years agoFor -Wswitch-enum warnings, be sure to look through typedefs of enum
Douglas Gregor [Wed, 17 Feb 2010 23:29:11 +0000 (23:29 +0000)]
For -Wswitch-enum warnings, be sure to look through typedefs of enum
types. Fixes <rdar://problem/7643909>.

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

14 years agoHook the "overflow converting case value to switch condition type"
Douglas Gregor [Wed, 17 Feb 2010 23:02:29 +0000 (23:02 +0000)]
Hook the "overflow converting case value to switch condition type"
warning into -Wswitch.

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

14 years agoWhen diagnosing enumerator values outside of the range of 'int', be
Douglas Gregor [Wed, 17 Feb 2010 22:40:11 +0000 (22:40 +0000)]
When diagnosing enumerator values outside of the range of 'int', be
sure that we get the "too large" vs. "too small" part of the
diagnostic correct.

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

14 years agosilence warning in a cleaner way
Chris Lattner [Wed, 17 Feb 2010 21:42:34 +0000 (21:42 +0000)]
silence warning in a cleaner way

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

14 years agoAlphabetize #includes. No functionality change.
Ted Kremenek [Wed, 17 Feb 2010 21:27:48 +0000 (21:27 +0000)]
Alphabetize #includes.  No functionality change.

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

14 years agoChange GNUInlineAttr definition to just use DEF_SIMPLE_ATTR.
Ted Kremenek [Wed, 17 Feb 2010 21:27:41 +0000 (21:27 +0000)]
Change GNUInlineAttr definition to just use DEF_SIMPLE_ATTR.

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

14 years agoImplement AST importing of ImplicitParamDecls, despite the sad fact
Douglas Gregor [Wed, 17 Feb 2010 21:22:52 +0000 (21:22 +0000)]
Implement AST importing of ImplicitParamDecls, despite the sad fact
that we can't test it yet.

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

14 years agoDon't make the inclusion of crashtracer information depend on NDEBUG.
Ted Kremenek [Wed, 17 Feb 2010 21:12:23 +0000 (21:12 +0000)]
Don't make the inclusion of crashtracer information depend on NDEBUG.

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

14 years agoHopefully make buildbot happy.
Fariborz Jahanian [Wed, 17 Feb 2010 21:01:05 +0000 (21:01 +0000)]
Hopefully make buildbot happy.

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

14 years agoclang: Add support for s// edit form of QA_OVERRIDE_GCC3_OPTIONS.
Daniel Dunbar [Wed, 17 Feb 2010 21:00:34 +0000 (21:00 +0000)]
clang: Add support for s// edit form of QA_OVERRIDE_GCC3_OPTIONS.
 - Used to do regex patsubst on arguments.

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

14 years agoPR5803: clang++: Treat untyped 'C' inputs as C++.
Daniel Dunbar [Wed, 17 Feb 2010 20:32:58 +0000 (20:32 +0000)]
PR5803: clang++: Treat untyped 'C' inputs as C++.
 - Patch by Andrzej K. Haczewski, with a tweak by me to emit a 'deprecated'
   diagnostic when we do this. We'll see what zee users say.

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

14 years agotests: Add '%clangxx' substitution, for 'clang++'
Daniel Dunbar [Wed, 17 Feb 2010 20:31:01 +0000 (20:31 +0000)]
tests: Add '%clangxx' substitution, for 'clang++'

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

14 years agoPatch to remove arbitrary imporation of 'self' into
Fariborz Jahanian [Wed, 17 Feb 2010 19:54:08 +0000 (19:54 +0000)]
Patch to remove arbitrary imporation of 'self' into
a block without it being used. This causes over release
of objects in certain runtime-senitive apps.
(fixes radar 7581175).

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

14 years agoFix test to not force triple, and also to not need stdint.h.
Daniel Dunbar [Wed, 17 Feb 2010 19:26:59 +0000 (19:26 +0000)]
Fix test to not force triple, and also to not need stdint.h.

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

14 years agoDid not intend to check this in.
Fariborz Jahanian [Wed, 17 Feb 2010 18:11:55 +0000 (18:11 +0000)]
Did not intend to check this in.

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

14 years agoUse proper lexcial context for newly added ivars.
Fariborz Jahanian [Wed, 17 Feb 2010 18:10:54 +0000 (18:10 +0000)]
Use proper lexcial context for newly added ivars.

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

14 years agoImplement AST merging for Objective-C properties.
Douglas Gregor [Wed, 17 Feb 2010 18:02:10 +0000 (18:02 +0000)]
Implement AST merging for Objective-C properties.

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

14 years agoMake FinalOverriders handle virtual bases correctly. Unfortunately this can't be...
Anders Carlsson [Wed, 17 Feb 2010 17:48:25 +0000 (17:48 +0000)]
Make FinalOverriders handle virtual bases correctly. Unfortunately this can't be tested just yet.

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

14 years agoAllow for declaration and use of ivars in a stand-alone
Fariborz Jahanian [Wed, 17 Feb 2010 17:00:07 +0000 (17:00 +0000)]
Allow for declaration and use of ivars in a stand-alone
implementation (toward radar 7547942).

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

14 years agoAST import for Objective-C protocols
Douglas Gregor [Wed, 17 Feb 2010 16:12:00 +0000 (16:12 +0000)]
AST import for Objective-C protocols

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

14 years agoIn symbol reaper, a variable is live if its stack frame is the parent of the
Zhongxing Xu [Wed, 17 Feb 2010 08:50:05 +0000 (08:50 +0000)]
In symbol reaper, a variable is live if its stack frame is the parent of the
current stack frame.

When leaving a callee, remove all bindings belonging to that callee.

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

14 years agoFor inline-based inter-procedural analysis, we will have multiple stack space regions...
Zhongxing Xu [Wed, 17 Feb 2010 08:46:50 +0000 (08:46 +0000)]
For inline-based inter-procedural analysis, we will have multiple stack space regions. Use a dense map to store them.

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

14 years agoAdd a utility method.
Zhongxing Xu [Wed, 17 Feb 2010 08:45:06 +0000 (08:45 +0000)]
Add a utility method.

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

14 years agoUpdate checker build.
Ted Kremenek [Wed, 17 Feb 2010 08:08:21 +0000 (08:08 +0000)]
Update checker build.

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

14 years agoDriver: Tweak freebsd::Link, by Roman Divacky.
Daniel Dunbar [Wed, 17 Feb 2010 08:07:51 +0000 (08:07 +0000)]
Driver: Tweak freebsd::Link, by Roman Divacky.

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

14 years agoFix comment.
Daniel Dunbar [Wed, 17 Feb 2010 08:07:44 +0000 (08:07 +0000)]
Fix comment.

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

14 years agoHandle primary bases in AddVCallOffsets.
Anders Carlsson [Wed, 17 Feb 2010 06:30:02 +0000 (06:30 +0000)]
Handle primary bases in AddVCallOffsets.

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

14 years agoSilence GCC warning by marking an assert-only variable as unused.
Chandler Carruth [Wed, 17 Feb 2010 06:24:18 +0000 (06:24 +0000)]
Silence GCC warning by marking an assert-only variable as unused.

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

14 years agoFirst cut at emitting vcall offsets.
Anders Carlsson [Wed, 17 Feb 2010 06:07:19 +0000 (06:07 +0000)]
First cut at emitting vcall offsets.

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

14 years agoDo not add functions marked with the unused attribute to the list of unused functions...
Tanya Lattner [Wed, 17 Feb 2010 04:48:01 +0000 (04:48 +0000)]
Do not add functions marked with the unused attribute to the list of unused functions to warn about. Update test case.

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

14 years agoEmit complete constructors and destructors as aliases to base constructors
John McCall [Wed, 17 Feb 2010 03:52:49 +0000 (03:52 +0000)]
Emit complete constructors and destructors as aliases to base constructors
and destructors when the two entities are semantically identical, i.e. when
the class has no virtual base classes.  We only do this for linkage types
for which aliases are supported, i.e. internal and external, i.e. not linkonce.

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

14 years agoPass through whether a base is virtual or not.
Anders Carlsson [Wed, 17 Feb 2010 03:11:55 +0000 (03:11 +0000)]
Pass through whether a base is virtual or not.

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

14 years agoAdd IBAction attribute to keep the IBOutlet attribute company.
Ted Kremenek [Wed, 17 Feb 2010 02:37:45 +0000 (02:37 +0000)]
Add IBAction attribute to keep the IBOutlet attribute company.

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

14 years agoimplement EmitVAArg. pretty much the same way other targets do.
Sanjiv Gupta [Wed, 17 Feb 2010 02:25:52 +0000 (02:25 +0000)]
implement EmitVAArg. pretty much the same way other targets do.

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

14 years agoFix unused function warning to handle used attributes and redeclarations. Update...
Tanya Lattner [Wed, 17 Feb 2010 02:17:21 +0000 (02:17 +0000)]
Fix unused function warning to handle used attributes and redeclarations. Update test case.

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

14 years agoImplement AST importing and checking for Objective-C method declarations.
Douglas Gregor [Wed, 17 Feb 2010 02:12:47 +0000 (02:12 +0000)]
Implement AST importing and checking for Objective-C method declarations.

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

14 years agoCorrectly calculate base offsets for 'this' pointer adjustments involving virtual...
Anders Carlsson [Wed, 17 Feb 2010 02:05:23 +0000 (02:05 +0000)]
Correctly calculate base offsets for 'this' pointer adjustments involving virtual bases. This can't be tested yet due to lack of vcall offsets :)

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

14 years agoConvert clang_getCompletionChunkText() to return a CXString.
Ted Kremenek [Wed, 17 Feb 2010 01:42:24 +0000 (01:42 +0000)]
Convert clang_getCompletionChunkText() to return a CXString.

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

14 years agoRevert r95939, as suggested by Alexandre Julliard from the Wine project (and
Charles Davis [Wed, 17 Feb 2010 00:44:47 +0000 (00:44 +0000)]
Revert r95939, as suggested by Alexandre Julliard from the Wine project (and
our own Chris Lattner).

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

14 years agoRemove trailing spaces.
Ted Kremenek [Wed, 17 Feb 2010 00:41:40 +0000 (00:41 +0000)]
Remove trailing spaces.

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

14 years agoChange clang_getCursorKindSpelling() to return a CXString
Ted Kremenek [Wed, 17 Feb 2010 00:41:32 +0000 (00:41 +0000)]
Change clang_getCursorKindSpelling() to return a CXString
instead of a 'const char *'.

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

14 years agoChange clang_getFileName() to return a 'CXString' instead of 'const char *'.
Ted Kremenek [Wed, 17 Feb 2010 00:41:20 +0000 (00:41 +0000)]
Change clang_getFileName() to return a 'CXString' instead of 'const char *'.

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

14 years agoMove createCXString() functions out of CIndexer and into the clang::cxstring namespace.
Ted Kremenek [Wed, 17 Feb 2010 00:41:08 +0000 (00:41 +0000)]
Move createCXString() functions out of CIndexer and into the clang::cxstring namespace.
We can much more succinctly refer to these functions this way.

Also change the default behavior of createCXString(StringRef&) to duplicate the
string.  This is almost always what we want.  The other case is where we pass
a constant c-string, which uses the other version of createCXString().

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

14 years agoImplement AST importing of Objective-C instance variables.
Douglas Gregor [Wed, 17 Feb 2010 00:34:30 +0000 (00:34 +0000)]
Implement AST importing of Objective-C instance variables.
Check superclasses when merging two Objective-C @interfaces.

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

14 years agoMore rewriter test converted to compile with clang.
Fariborz Jahanian [Tue, 16 Feb 2010 22:27:50 +0000 (22:27 +0000)]
More rewriter test converted to compile with clang.

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

14 years agoWith addition of -Wno-address-of-temporary (thank you Doug) we can now
Fariborz Jahanian [Tue, 16 Feb 2010 22:13:48 +0000 (22:13 +0000)]
With addition of -Wno-address-of-temporary (thank you Doug) we can now
have rewriter test cases which pass the .cpp file through clang
and also test c++ aspect of clang.

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

14 years agoIRgen optimization: cache the value of 'this' and 'vtt' instead of
John McCall [Tue, 16 Feb 2010 22:04:33 +0000 (22:04 +0000)]
IRgen optimization:  cache the value of 'this' and 'vtt' instead of
repeatedly reloading from an alloca.  We still need to create the alloca
for debug info purposes (although we currently create it in all cases
because of some abstraction boundaries that're hard to break down).

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

14 years agoDistinguish two lexical blocks at the same level.
Devang Patel [Tue, 16 Feb 2010 21:41:20 +0000 (21:41 +0000)]
Distinguish two lexical blocks at the same level.

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

14 years agoIntroduce a new kind of failed result for isLvalue/isModifiableLvalue
Douglas Gregor [Tue, 16 Feb 2010 21:39:57 +0000 (21:39 +0000)]
Introduce a new kind of failed result for isLvalue/isModifiableLvalue
which describes temporary objects of class type in C++. Use this to
provide a more-specific, remappable diagnostic when takin the address
of such a temporary.

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

14 years agoIRgen: Switch 'retval' to use CreateIRTemp.
Daniel Dunbar [Tue, 16 Feb 2010 19:45:20 +0000 (19:45 +0000)]
IRgen: Switch 'retval' to use CreateIRTemp.

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

14 years agoDisable warn_unused_function for now, its breaking various project builds due to
Daniel Dunbar [Tue, 16 Feb 2010 19:44:56 +0000 (19:44 +0000)]
Disable warn_unused_function for now, its breaking various project builds due to
false positives.

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

14 years agoIRgen: Add CreateIRTemp, which creates a temporary alloca but with type converted...
Daniel Dunbar [Tue, 16 Feb 2010 19:44:13 +0000 (19:44 +0000)]
IRgen: Add CreateIRTemp, which creates a temporary alloca but with type converted "not-for-memory". Dunno a better name.

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

14 years agoIRgen: Switch EmitCompoundLiteralLValue to use CreateMemTemp.
Daniel Dunbar [Tue, 16 Feb 2010 19:43:39 +0000 (19:43 +0000)]
IRgen: Switch EmitCompoundLiteralLValue to use CreateMemTemp.

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

14 years agoDo not try to instantiate invalid declarations. It's a recipe for
Douglas Gregor [Tue, 16 Feb 2010 19:28:15 +0000 (19:28 +0000)]
Do not try to instantiate invalid declarations. It's a recipe for
disaster. Fixes PR6161.

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

14 years agoImprove parsing and instantiation of destructor names, so that we can
Douglas Gregor [Tue, 16 Feb 2010 19:09:40 +0000 (19:09 +0000)]
Improve parsing and instantiation of destructor names, so that we can
now cope with the destruction of types named as dependent templates,
e.g.,

  y->template Y<T>::~Y()

Nominally, we implement C++0x [basic.lookup.qual]p6. However, we don't
follow the letter of the standard here because that would fail to
parse

  template<typename T, typename U>
  X0<T, U>::~X0() { }

properly. The problem is captured in core issue 339, which gives some
(but not enough!) guidance. I expect to revisit this code when the
resolution of 339 is clear, and/or we start capturing better source
information for DeclarationNames.

Fixes PR6152.

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

14 years agowhen a diagnostic is an extension and has no other -W flag,
Chris Lattner [Tue, 16 Feb 2010 18:29:31 +0000 (18:29 +0000)]
when a diagnostic is an extension and has no other -W flag,
indicate that it was enabled with -pedantic so people know
why they're getting them:

$ printf "int x;" | clang -xc - -pedantic
<stdin>:1:7: warning: no newline at end of file [-pedantic]
int x;
      ^

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

14 years agodllimport and dllexport are declspec attributes, too. They're also
Charles Davis [Tue, 16 Feb 2010 18:27:26 +0000 (18:27 +0000)]
dllimport and dllexport are declspec attributes, too. They're also
Win32-specific.

Also, fix a test to use FileCheck instead of grepping LLVM IR.

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

14 years agoadd two aliases for SSE functions we already have, fixing PR6316.
Chris Lattner [Tue, 16 Feb 2010 18:21:25 +0000 (18:21 +0000)]
add two aliases for SSE functions we already have, fixing PR6316.

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

14 years agoadd freebsd/ppc[64] support, patch by Nathan Whitehorn, PR6318
Chris Lattner [Tue, 16 Feb 2010 18:14:57 +0000 (18:14 +0000)]
add freebsd/ppc[64] support, patch by Nathan Whitehorn, PR6318

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

14 years agoMinor rewriter cleanup and a test for a block rewriting bug.
Fariborz Jahanian [Tue, 16 Feb 2010 17:26:03 +0000 (17:26 +0000)]
Minor rewriter cleanup and a test for a block rewriting bug.

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

14 years agoAdd test case showing that a recursive block that captures a block pointer that
Ted Kremenek [Tue, 16 Feb 2010 16:55:10 +0000 (16:55 +0000)]
Add test case showing that a recursive block that captures a block pointer that
isn't marked '__block' is bad.

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

14 years agoAdd an extreme vbase offsets test. I'm kinda amazed that this works myself ;)
Anders Carlsson [Tue, 16 Feb 2010 16:50:08 +0000 (16:50 +0000)]
Add an extreme vbase offsets test. I'm kinda amazed that this works myself ;)

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

14 years agoHandle layout of vtables for virtual bases.
Anders Carlsson [Tue, 16 Feb 2010 16:49:35 +0000 (16:49 +0000)]
Handle layout of vtables for virtual bases.

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

14 years agoMove some code around in preparation for virtual base vtables.
Anders Carlsson [Tue, 16 Feb 2010 16:26:28 +0000 (16:26 +0000)]
Move some code around in preparation for virtual base vtables.

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

14 years agoFix rewriter bug when function call inside block with block parameter
Fariborz Jahanian [Tue, 16 Feb 2010 16:21:26 +0000 (16:21 +0000)]
Fix rewriter bug when function call inside block with block parameter
causes C++ compile error (radar 7651312).

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

14 years agoFix a bug where we would not emit secondary vtables for bases of a primary base.
Anders Carlsson [Tue, 16 Feb 2010 16:02:57 +0000 (16:02 +0000)]
Fix a bug where we would not emit secondary vtables for bases of a primary base.

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

14 years agoRename argument so the name reflects what it's doing.
Benjamin Kramer [Tue, 16 Feb 2010 10:07:31 +0000 (10:07 +0000)]
Rename argument so the name reflects what it's doing.

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

14 years agoAdd simpler checker to check if variables captured by a block are uninitialized.
Ted Kremenek [Tue, 16 Feb 2010 08:33:59 +0000 (08:33 +0000)]
Add simpler checker to check if variables captured by a block are uninitialized.

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

14 years agoSupport local namespace aliases and permit them to be instantiated.
John McCall [Tue, 16 Feb 2010 06:53:13 +0000 (06:53 +0000)]
Support local namespace aliases and permit them to be instantiated.

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

14 years agoEmit vbase offsets.
Anders Carlsson [Tue, 16 Feb 2010 04:59:55 +0000 (04:59 +0000)]
Emit vbase offsets.

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

14 years agoMore work on the new layout code.
Anders Carlsson [Tue, 16 Feb 2010 04:49:44 +0000 (04:49 +0000)]
More work on the new layout code.

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

14 years agoWhen emitting complete destructors for classes with virtual bases, compute
John McCall [Tue, 16 Feb 2010 04:15:37 +0000 (04:15 +0000)]
When emitting complete destructors for classes with virtual bases, compute
the offset to the virtual bases statically inside of relying on the virtual
base offsets in the object's vtable(s).  This is both more efficient and
sound against the destructor's manipulation of the vtables.

Also extract a few helper routines.

Oh and we seem to pass all tests with an optimized clang now.

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

14 years agoWhite-list comma expressions with the literal 0 as their RHS against
John McCall [Tue, 16 Feb 2010 04:10:53 +0000 (04:10 +0000)]
White-list comma expressions with the literal 0 as their RHS against
unused-value warnings.  This is a common macro idiom.

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

14 years agoMake the various type-decl Types (and their associated ASTContext routines)
John McCall [Tue, 16 Feb 2010 03:57:14 +0000 (03:57 +0000)]
Make the various type-decl Types (and their associated ASTContext routines)
accept const decls.

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

14 years agoRe-applying 96173. Looks like finally I got the test case right.
Sanjiv Gupta [Tue, 16 Feb 2010 03:37:11 +0000 (03:37 +0000)]
Re-applying 96173. Looks like finally I got the test case right.

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

14 years agoAdd test case to show that Clang now checks the format string
Ted Kremenek [Tue, 16 Feb 2010 02:14:24 +0000 (02:14 +0000)]
Add test case to show that Clang now checks the format string
arguments of asprintf (<rdar://problem/6657191>).

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

14 years agoc-index-test: Pass appropriate client data.
Daniel Dunbar [Tue, 16 Feb 2010 01:55:10 +0000 (01:55 +0000)]
c-index-test: Pass appropriate client data.

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

14 years agoASTUnit: Constant fold UseBumpAllocator to true, we don't care to support this as...
Daniel Dunbar [Tue, 16 Feb 2010 01:55:04 +0000 (01:55 +0000)]
ASTUnit: Constant fold UseBumpAllocator to true, we don't care to support this as an argument.

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

14 years agoASTUnit::LoadFromCompilerInvocation - Take ownership of the provided invocation.
Daniel Dunbar [Tue, 16 Feb 2010 01:54:54 +0000 (01:54 +0000)]
ASTUnit::LoadFromCompilerInvocation - Take ownership of the provided invocation.

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

14 years agoCompilerInstance: Move LLVMContext member out of constructor.
Daniel Dunbar [Tue, 16 Feb 2010 01:54:47 +0000 (01:54 +0000)]
CompilerInstance: Move LLVMContext member out of constructor.

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

14 years agoSwitch clang to use its own LLVMContext (not the global one).
Daniel Dunbar [Tue, 16 Feb 2010 01:54:33 +0000 (01:54 +0000)]
Switch clang to use its own LLVMContext (not the global one).

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

14 years agoFix test case.
Ted Kremenek [Tue, 16 Feb 2010 01:47:05 +0000 (01:47 +0000)]
Fix test case.

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

14 years agoRefactor the logic for printf argument type-checking into analyze_printf::ArgTypeResult.
Ted Kremenek [Tue, 16 Feb 2010 01:46:59 +0000 (01:46 +0000)]
Refactor the logic for printf argument type-checking into analyze_printf::ArgTypeResult.
Implement printf argument type checking for '%s'.

Fixes <rdar://problem/3065808>.

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

14 years agoAdded 'AsWideChar' flag to LengthModifier.
Ted Kremenek [Tue, 16 Feb 2010 01:46:47 +0000 (01:46 +0000)]
Added 'AsWideChar' flag to LengthModifier.

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

14 years agoSkeleton for importing Objective-C classes
Douglas Gregor [Tue, 16 Feb 2010 01:20:57 +0000 (01:20 +0000)]
Skeleton for importing Objective-C classes

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

14 years agomark __builtin_longjmp noreturn, PR6312
Chris Lattner [Tue, 16 Feb 2010 00:23:21 +0000 (00:23 +0000)]
mark __builtin_longjmp noreturn, PR6312

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

14 years agoDon't import __va_list_tag or __builtin_va_list when merging
Douglas Gregor [Tue, 16 Feb 2010 00:04:46 +0000 (00:04 +0000)]
Don't import __va_list_tag or __builtin_va_list when merging

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

14 years agoCope with anonymous tags defined within declarators by structurally
Douglas Gregor [Mon, 15 Feb 2010 23:54:17 +0000 (23:54 +0000)]
Cope with anonymous tags defined within declarators by structurally
comparing their types under the assumption that they are equivalent,
rather than importing the types and then checking for compatibility. A
few minor tweaks here:
  - Teach structural matching to handle compatibility between
  function types with prototypes and those without prototypes.
  - Teach structural matching that an incomplete record decl is the
  same as any other record decl with the same name.
  - Keep track of pairs of declarations that we have already checked
  (but failed to find as structurally matching), so we don't emit
  diagnostics repeatedly.
  - When importing a typedef of an anonymous tag, be sure to link the
  imported tag type to its typedef.

With these changes, we survive a repeated import of <stdlib.h> and
<stdio.h>. Alas, the ASTNodeImporter is getting a little grotty.

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

14 years agoConvert GRExprEngine's handling of ObjCMessageExprs to use a worklist
Ted Kremenek [Mon, 15 Feb 2010 23:02:46 +0000 (23:02 +0000)]
Convert GRExprEngine's handling of ObjCMessageExprs to use a worklist
to evaluate arguments.

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