]> granicus.if.org Git - clang/log
clang
15 years agoAdd back attribute string lookup for 'ns_returns_retained' and
Ted Kremenek [Sat, 9 May 2009 03:08:29 +0000 (03:08 +0000)]
Add back attribute string lookup for 'ns_returns_retained' and
'cf_returns_retained'.

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

15 years agoAdd back analyzer support for ns_returns_retained and cf_returns_retained.
Ted Kremenek [Sat, 9 May 2009 02:58:13 +0000 (02:58 +0000)]
Add back analyzer support for ns_returns_retained and cf_returns_retained.

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

15 years agoAdd back Parse/Sema support for attributes cf_returns_retained and
Ted Kremenek [Sat, 9 May 2009 02:44:38 +0000 (02:44 +0000)]
Add back Parse/Sema support for attributes cf_returns_retained and
ns_returns_retained, but do not include the other ownership attributes
we previously had.

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

15 years agoIt lives! The retain/release checker now tracks objects that are sent
Ted Kremenek [Sat, 9 May 2009 01:50:57 +0000 (01:50 +0000)]
It lives!  The retain/release checker now tracks objects that are sent
'autorelease'.

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

15 years agoFix lurking bug in one of the versions of
Ted Kremenek [Sat, 9 May 2009 01:37:12 +0000 (01:37 +0000)]
Fix lurking bug in one of the versions of
GRStmtNodeBuilder::generateNode() where the HasGeneratedNode flag
wouldn't properly be set.

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

15 years agorename: MemRegion:
Zhongxing Xu [Sat, 9 May 2009 00:50:33 +0000 (00:50 +0000)]
rename: MemRegion:
 RValueType => ObjectType
 LValueType => LocationType

No functionality change.

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

15 years agoMore hacking on autorelease errors. We now can emit basic errors (disabled for
Ted Kremenek [Sat, 9 May 2009 00:44:07 +0000 (00:44 +0000)]
More hacking on autorelease errors. We now can emit basic errors (disabled for
now until ready).

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

15 years agoPut most of the boilerplate logic in place for reporting autorelease errors.
Ted Kremenek [Sat, 9 May 2009 00:10:05 +0000 (00:10 +0000)]
Put most of the boilerplate logic in place for reporting autorelease errors.

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

15 years agoWe want to diagnose sending message to a forward class
Fariborz Jahanian [Fri, 8 May 2009 23:45:49 +0000 (23:45 +0000)]
We want to diagnose sending message to a forward class
and we also want to tell which message is actually
being sent.

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

15 years agoABITest: Improve test driver marginally, to allow running a specific
Daniel Dunbar [Fri, 8 May 2009 23:40:45 +0000 (23:40 +0000)]
ABITest: Improve test driver marginally, to allow running a specific
test index.

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

15 years agoretain/release checker: Add stub for HandleAutoreleaseCounts.
Ted Kremenek [Fri, 8 May 2009 23:32:51 +0000 (23:32 +0000)]
retain/release checker: Add stub for HandleAutoreleaseCounts.

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

15 years agoFix PR4182.
Zhongxing Xu [Fri, 8 May 2009 23:28:07 +0000 (23:28 +0000)]
Fix PR4182.

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

15 years agoretain/release checker: Refactor error-reporting code in EvalDeadSymbols and
Ted Kremenek [Fri, 8 May 2009 23:09:42 +0000 (23:09 +0000)]
retain/release checker: Refactor error-reporting code in EvalDeadSymbols and
EvalEndPath. This sets the stage for handling autorelease counts.

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

15 years agoMake BlockEntrace program points taggable.
Ted Kremenek [Fri, 8 May 2009 23:08:34 +0000 (23:08 +0000)]
Make BlockEntrace program points taggable.

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

15 years agoFix typo in method name.
Ted Kremenek [Fri, 8 May 2009 23:07:51 +0000 (23:07 +0000)]
Fix typo in method name.

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

15 years agoWarn if forward class is used as a receiver.
Fariborz Jahanian [Fri, 8 May 2009 23:02:36 +0000 (23:02 +0000)]
Warn if forward class is used as a receiver.

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

15 years agoABITest: Move more of the common Makefile bits into the common
Daniel Dunbar [Fri, 8 May 2009 22:49:52 +0000 (22:49 +0000)]
ABITest: Move more of the common Makefile bits into the common
Makefile.

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

15 years agoABITest: Fix a bug in generating test values for structures w/ no
Daniel Dunbar [Fri, 8 May 2009 22:48:39 +0000 (22:48 +0000)]
ABITest: Fix a bug in generating test values for structures w/ no
non-padding fields.

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

15 years agox86_64 ABI: Ignore padding bit-fields during classification.
Daniel Dunbar [Fri, 8 May 2009 22:26:44 +0000 (22:26 +0000)]
x86_64 ABI: Ignore padding bit-fields during classification.
 - {return-types,single-args}-{32,64} pass the first 1k ABI tests with
   bit-fields enabled.

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

15 years agoDarwin x86_32: When coercing a "single element" structure, make sure
Daniel Dunbar [Fri, 8 May 2009 21:30:11 +0000 (21:30 +0000)]
Darwin x86_32: When coercing a "single element" structure, make sure
to use a wide enough type. This might be wider than the "single
element"'s type in the presence of padding bit-fields.
 - Darwin x86_32 now passes the first 1k ABI tests with bit-field
   generation enabled.

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

15 years agoFixes a bug in my last patch. Order of types reversed.
Fariborz Jahanian [Fri, 8 May 2009 21:10:00 +0000 (21:10 +0000)]
Fixes a bug in my last patch. Order of types reversed.

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

15 years agoDarwin x86_32: Ignore padding bit-fields when looking for "single
Daniel Dunbar [Fri, 8 May 2009 21:04:47 +0000 (21:04 +0000)]
Darwin x86_32: Ignore padding bit-fields when looking for "single
element" structures.

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

15 years agoDarwin x86_32: Improve bit-field handling for returning records.
Daniel Dunbar [Fri, 8 May 2009 20:55:49 +0000 (20:55 +0000)]
Darwin x86_32: Improve bit-field handling for returning records.
 - This turns out to be a no-op now that most of the handling for
   everything else is in place.

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

15 years agoDarwin x86_32: Ignore arrays of empty structures inside records.
Daniel Dunbar [Fri, 8 May 2009 20:21:04 +0000 (20:21 +0000)]
Darwin x86_32: Ignore arrays of empty structures inside records.
 - This eliminates 5/1000 failures on return-types-32, on the current
   ABITest config.

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

15 years agoRefactoring of my last patch.
Fariborz Jahanian [Fri, 8 May 2009 20:20:55 +0000 (20:20 +0000)]
Refactoring of my last patch.

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

15 years agoABITest: Move default set of test args into common makefile.
Daniel Dunbar [Fri, 8 May 2009 20:10:52 +0000 (20:10 +0000)]
ABITest: Move default set of test args into common makefile.

Also, tweak default list of bit-fields to try.

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

15 years agoretain checker: Track the number of times a tracked object is sent
Ted Kremenek [Fri, 8 May 2009 20:01:42 +0000 (20:01 +0000)]
retain checker: Track the number of times a tracked object is sent
'autorelease'. This isn't used yet to flag errors.

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

15 years agoMore type checking for properties, accessors and
Fariborz Jahanian [Fri, 8 May 2009 19:36:34 +0000 (19:36 +0000)]
More type checking for properties, accessors and
use of dot-syntax expression. This is to match gcc's.

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

15 years agoProvide dummy va_list typedef for msp430
Anton Korobeynikov [Fri, 8 May 2009 18:24:57 +0000 (18:24 +0000)]
Provide dummy va_list typedef for msp430

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

15 years agofurther improvements to gnu objc EH stuff, patch by David Chisnall!
Chris Lattner [Fri, 8 May 2009 17:36:08 +0000 (17:36 +0000)]
further improvements to gnu objc EH stuff, patch by David Chisnall!

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

15 years ago"This patch fixes message sends to super in categories for the GNU runtime. This...
Chris Lattner [Fri, 8 May 2009 15:39:58 +0000 (15:39 +0000)]
"This patch fixes message sends to super in categories for the GNU runtime.  This used to work, but I broke it when I modified the code to emit the same thing as GCC for message sends to super in classes."

Patch by David Chisnall!

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

15 years agoFix the atomics sema code to convert operands to the argument types
Chris Lattner [Fri, 8 May 2009 15:36:58 +0000 (15:36 +0000)]
Fix the atomics sema code to convert operands to the argument types
of the underlying _N builtin, not the the type of the pointee of the
actual type.  This ensures that atomics involving pointers end up
using the correct integer type when they are resolved, avoiding
aborts in codegen.

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

15 years agoRemove experimental ownership attributes from Clang.
Ted Kremenek [Fri, 8 May 2009 15:19:25 +0000 (15:19 +0000)]
Remove experimental ownership attributes from Clang.

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

15 years agoRegion store: when casting VarRegions, if the cast-to pointee type is
Zhongxing Xu [Fri, 8 May 2009 07:28:25 +0000 (07:28 +0000)]
Region store: when casting VarRegions, if the cast-to pointee type is
incomplete, do not compute its size and return the original region.

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

15 years agoreimplement __sync_* builtins to be variadic and to follow the same
Chris Lattner [Fri, 8 May 2009 06:58:22 +0000 (06:58 +0000)]
reimplement __sync_* builtins to be variadic and to follow the same
semantic rules that gcc and icc use.  This implements the variadic
and concrete versions as builtins and has sema do the
disambiguation.  There are probably a bunch of details to finish up
but this seems like a large monotonic step forward :)

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

15 years agoReplace the heuristic isSmallerThan with ASTContext::getTypeSize().
Zhongxing Xu [Fri, 8 May 2009 02:12:59 +0000 (02:12 +0000)]
Replace the heuristic isSmallerThan with ASTContext::getTypeSize().

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

15 years agoReplace getTypeWidth() with ASTContext::getTypeSize().
Zhongxing Xu [Fri, 8 May 2009 02:00:55 +0000 (02:00 +0000)]
Replace getTypeWidth() with ASTContext::getTypeSize().

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

15 years agoRevert r71079.
Zhongxing Xu [Fri, 8 May 2009 01:33:18 +0000 (01:33 +0000)]
Revert r71079.

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

15 years agoAdd various other bits I use to run ABITest.
Daniel Dunbar [Fri, 8 May 2009 00:49:21 +0000 (00:49 +0000)]
Add various other bits I use to run ABITest.

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

15 years agoFix <rdar://problem/6845148>. Signed integers compared against pointers should
Ted Kremenek [Fri, 8 May 2009 00:32:39 +0000 (00:32 +0000)]
Fix <rdar://problem/6845148>. Signed integers compared against pointers should
implicitly be changed to unsigned values in GRSimpleVals.cpp. This can happen
when the comparison involves logic in specialized transfer functions (e.g.,
OSAtomicCompareAndSwap).

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

15 years agoinitial support for ObjC exceptions with the GNU runtime:
Chris Lattner [Fri, 8 May 2009 00:11:50 +0000 (00:11 +0000)]
initial support for ObjC exceptions with the GNU runtime:

"This patch is a first pass at adding support for exceptions for the GNU runtime.  There are a few limitations at present:

- @synchronized() is not yet supported at all.  gcc currently emits calls to runtime library functions that don't exist for this directive.

- Only id @catch statements are currently working.  This is enough for NS_DURING and friends, but I need to spend more time reading the output from gcc -S to work out how it finds the class pointer to make arbitrary class type catch statements work.

- I've tested it with a few common cases[1] and the clang test suite (which doesn't test exceptions for the GNU runtime, but shows I haven't broken anything else), but there are probably a lot of cases I've missed."

Patch by David Chisnall!

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

15 years agoFix crash with constant initialization of bit-fields in unions.
Eli Friedman [Thu, 7 May 2009 23:42:42 +0000 (23:42 +0000)]
Fix crash with constant initialization of bit-fields in unions.

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

15 years agoMinor code cleanup in retain/release checker in preparation for some
Ted Kremenek [Thu, 7 May 2009 23:40:42 +0000 (23:40 +0000)]
Minor code cleanup in retain/release checker in preparation for some
other changes.  Instead of repeatedly checking for GC mode when
getting the return effect, just do this computation once.

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

15 years agoAdd to the house of cards that is ABITestGen.
Daniel Dunbar [Thu, 7 May 2009 23:19:55 +0000 (23:19 +0000)]
Add to the house of cards that is ABITestGen.
 - Support generating structures with bit-fields.

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

15 years agoAdd a warning for a missing copy attribute on a property that is a
Mike Stump [Thu, 7 May 2009 23:06:50 +0000 (23:06 +0000)]
Add a warning for a missing copy attribute on a property that is a
block pointer.  Radar 6441502

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

15 years agoRemove -fobjc-tight-layout, seems to work!
Daniel Dunbar [Thu, 7 May 2009 21:58:26 +0000 (21:58 +0000)]
Remove -fobjc-tight-layout, seems to work!

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

15 years agoAllow qualifiers on blocks. Radar 6441502
Mike Stump [Thu, 7 May 2009 21:56:17 +0000 (21:56 +0000)]
Allow qualifiers on blocks.  Radar 6441502

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

15 years agoMore attribute renaming:
Ted Kremenek [Thu, 7 May 2009 21:49:45 +0000 (21:49 +0000)]
More attribute renaming:
- Rename 'ns_returns_owned' -> 'ns_returns_retained'.
- Rename 'cf_returns_owned' -> 'cf_returns_retained'.

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

15 years agoa forward class declaration matching a typedef name of a class
Fariborz Jahanian [Thu, 7 May 2009 21:49:26 +0000 (21:49 +0000)]
a forward class declaration matching a typedef name of a class
refers to the underlying class.
This is radar 6859726. Steve, please read the radar for my rational.

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

15 years agoadd isFriendSpecified.
Anders Carlsson [Thu, 7 May 2009 19:41:51 +0000 (19:41 +0000)]
add isFriendSpecified.

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

15 years agoFix <rdar://problem/6848739>. When using -analyze, -Werror has no effect.
Ted Kremenek [Thu, 7 May 2009 19:02:53 +0000 (19:02 +0000)]
Fix <rdar://problem/6848739>.  When using -analyze, -Werror has no effect.

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

15 years agoTighten up relationals with blocks and ints. Radar 6441502
Mike Stump [Thu, 7 May 2009 18:43:07 +0000 (18:43 +0000)]
Tighten up relationals with blocks and ints.  Radar 6441502

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

15 years agoanalyzer: Add ProgramPoint 'PostLValue' just to distinguish (for
Ted Kremenek [Thu, 7 May 2009 18:27:16 +0000 (18:27 +0000)]
analyzer: Add ProgramPoint 'PostLValue' just to distinguish (for
analysis introspection) when we computed an lvalue.  This shouldn't
effect the current analysis results in any way.

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

15 years agoBig update to the C++ status table to reflect "recent"
Douglas Gregor [Thu, 7 May 2009 17:50:16 +0000 (17:50 +0000)]
Big update to the C++ status table to reflect "recent"
development. Still much more to write!

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

15 years agoFix a FIXME in new expression checking.
Sebastian Redl [Thu, 7 May 2009 16:14:23 +0000 (16:14 +0000)]
Fix a FIXME in new expression checking.

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

15 years agoDocument the dependent type equivalence test case's purpose.
Douglas Gregor [Thu, 7 May 2009 15:40:54 +0000 (15:40 +0000)]
Document the dependent type equivalence test case's purpose.

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

15 years agoTest a few more variants of dependent type names
Douglas Gregor [Thu, 7 May 2009 15:31:47 +0000 (15:31 +0000)]
Test a few more variants of dependent type names

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

15 years agoCompute the canonical template name when building a template
Douglas Gregor [Thu, 7 May 2009 06:49:52 +0000 (06:49 +0000)]
Compute the canonical template name when building a template
specialization type for a dependent template name.

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

15 years agoStart canonicalizing template names. This is not yet complete, but it
Douglas Gregor [Thu, 7 May 2009 06:41:52 +0000 (06:41 +0000)]
Start canonicalizing template names. This is not yet complete, but it
improves type identity with dependent types.

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

15 years agoAdd support for LLLi -> int128 in builtins.def
Chris Lattner [Thu, 7 May 2009 04:47:06 +0000 (04:47 +0000)]
Add support for LLLi -> int128 in builtins.def

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

15 years agoMake this test portable to non-x86 hosts, patch by Mark Cianciosa!
Chris Lattner [Thu, 7 May 2009 04:21:16 +0000 (04:21 +0000)]
Make this test portable to non-x86 hosts, patch by Mark Cianciosa!

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

15 years agoImprove semantic checking for blocks. Radar 6441502
Mike Stump [Thu, 7 May 2009 03:14:14 +0000 (03:14 +0000)]
Improve semantic checking for blocks.  Radar 6441502

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

15 years agoAdd preliminary support for enhancing null-pointer dereference diagnostics.
Ted Kremenek [Thu, 7 May 2009 00:45:33 +0000 (00:45 +0000)]
Add preliminary support for enhancing null-pointer dereference diagnostics.

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

15 years agoBug fix: Not all ConstraintManagers always return a null state when setting
Ted Kremenek [Thu, 7 May 2009 00:45:08 +0000 (00:45 +0000)]
Bug fix: Not all ConstraintManagers always return a null state when setting
isFeasible to false. This is something we may wish to do further validation on.

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

15 years agoBack out r70506 (exception spec in AST) again. We won't have exception specs until...
Sebastian Redl [Wed, 6 May 2009 23:27:55 +0000 (23:27 +0000)]
Back out r70506 (exception spec in AST) again. We won't have exception specs until we've had a lot more discussion.

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

15 years agoHandle -march for the LLVM recognized cpu names.
Daniel Dunbar [Wed, 6 May 2009 21:56:32 +0000 (21:56 +0000)]
Handle -march for the LLVM recognized cpu names.
 - x86 target feature handling should not be feature complete, even if
   the code quality is lacking.

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

15 years agoRefactor BugReporter interface to have a new 'BugReporterContext' and
Ted Kremenek [Wed, 6 May 2009 21:39:49 +0000 (21:39 +0000)]
Refactor BugReporter interface to have a new 'BugReporterContext' and
'BugReporterVisitor'. This simplifies callbacks from BugReporter to BugReports
(via VisitNode). It also lays the foundation for arbitrary visitor "call backs"
that can be registered to a BugReporterContext as a PathDiagnostic is
constructed. These call backs can help operate as separate "experts" that can
work on constructed pieces of a PathDiagnostic for which they possess special
knowledge.

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

15 years agoIf stderr isn't a terminal, don't try to guess the terminal width or
Daniel Dunbar [Wed, 6 May 2009 21:28:42 +0000 (21:28 +0000)]
If stderr isn't a terminal, don't try to guess the terminal width or
look at COLUMNS.

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

15 years agoMore x86 target feature support.
Daniel Dunbar [Wed, 6 May 2009 21:07:50 +0000 (21:07 +0000)]
More x86 target feature support.
 - Apologies for the extremely gross code duplication, I want to get
   this working and then decide how to get this information out of the
   back end.

 - This replaces -m[no-]sse4[12] by -m[no-]sse4, it appears gcc
   doesn't distinguish them?

 - -msse, etc. now properly disable/enable related features.

 - Don't always define __SSE3__...

 - The main missing functionality bit here is that we don't initialize
   the features based on the CPU for all -march options.

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

15 years agoUpdate checker build.
Ted Kremenek [Wed, 6 May 2009 20:13:50 +0000 (20:13 +0000)]
Update checker build.

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

15 years agoDocument environment variables we handle, and don't mention -pipe (it
Daniel Dunbar [Wed, 6 May 2009 19:18:09 +0000 (19:18 +0000)]
Document environment variables we handle, and don't mention -pipe (it
isn't yet supported... lazy developers).

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

15 years agoFix analyzer regression reported in PR 4164:
Ted Kremenek [Wed, 6 May 2009 18:19:24 +0000 (18:19 +0000)]
Fix analyzer regression reported in PR 4164:
- Update the old StoreManager::CastRegion to strip off 'ElementRegions' when
  casting to void* (Zhongxing: please validate)
- Pass-by-reference argument invalidation logic in CFRefCount.cpp:
  - Strip ElementRegions when the ElementRegion is just a 'raw data' view
    on top of the underlying typed region.

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

15 years agoMore content.
Chris Lattner [Wed, 6 May 2009 17:22:08 +0000 (17:22 +0000)]
More content.

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

15 years agoImprove RegionStoreManager::getSizeInElements()
Zhongxing Xu [Wed, 6 May 2009 11:51:48 +0000 (11:51 +0000)]
Improve RegionStoreManager::getSizeInElements()
 - add a static function getTypeWidth(), which computes the width of a type
   with the help of TargetInfo.
 - no-outofbounds.c now passes for region store.

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

15 years agoadd getTargetInfo() method to ASTContext.
Zhongxing Xu [Wed, 6 May 2009 11:48:29 +0000 (11:48 +0000)]
add getTargetInfo() method to ASTContext.

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

15 years agoAdd a GDM for recording the cast type of regions.
Zhongxing Xu [Wed, 6 May 2009 08:33:50 +0000 (08:33 +0000)]
Add a GDM for recording the cast type of regions.

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

15 years agoThe super region of ElementRegion no longer needs to be TypedRegion. In the
Zhongxing Xu [Wed, 6 May 2009 08:15:46 +0000 (08:15 +0000)]
The super region of ElementRegion no longer needs to be TypedRegion. In the
future we would create ElementRegion directly on top of typeless regions.

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

15 years agoImplement a heuristic type size comparison method for now.
Zhongxing Xu [Wed, 6 May 2009 08:08:27 +0000 (08:08 +0000)]
Implement a heuristic type size comparison method for now.

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

15 years agoadjust this to bourne shell syntax
Chris Lattner [Wed, 6 May 2009 06:00:28 +0000 (06:00 +0000)]
adjust this to bourne shell syntax

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

15 years agoTweak x86 -mcpu defaults.
Daniel Dunbar [Wed, 6 May 2009 04:58:14 +0000 (04:58 +0000)]
Tweak x86 -mcpu defaults.
 - Default to yonah on Darwin (to get SSE3).

 - Default to Pentium4 (32-bit) and x86-64 (64-bit) on
   non-Darwin. Welcome to the 21st century.

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

15 years agoAdd parsing of friend specifiers.
Anders Carlsson [Wed, 6 May 2009 04:46:28 +0000 (04:46 +0000)]
Add parsing of friend specifiers.

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

15 years agoEliminate extra vertical space in Clang diagnostics
Douglas Gregor [Wed, 6 May 2009 04:43:47 +0000 (04:43 +0000)]
Eliminate extra vertical space in Clang diagnostics

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

15 years agodaniel is buggy :)
Chris Lattner [Wed, 6 May 2009 04:38:30 +0000 (04:38 +0000)]
daniel is buggy :)

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

15 years agoFix rdar://6860124 - invalid input constraint 'J' in asm
Chris Lattner [Wed, 6 May 2009 04:33:31 +0000 (04:33 +0000)]
Fix rdar://6860124 - invalid input constraint 'J' in asm
This recognizes all the target-independent constant constraints
that have target-specific meanings.

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

15 years agoAdd missing include.
Daniel Dunbar [Wed, 6 May 2009 04:07:06 +0000 (04:07 +0000)]
Add missing include.

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

15 years agoCleanup some FIXMEs.
Daniel Dunbar [Wed, 6 May 2009 03:48:17 +0000 (03:48 +0000)]
Cleanup some FIXMEs.

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

15 years agoImprove handling of (X86) target features.
Daniel Dunbar [Wed, 6 May 2009 03:16:41 +0000 (03:16 +0000)]
Improve handling of (X86) target features.
 - This is a WIP...

 - This adds -march= handling to the driver, and fixes the defaulting
   of -mcpu on Darwin (which was using the wrong test).

Instead of handling -m{sse, ...} in the driver, pass them to clang-cc as
 -target-feature [+-]name

In clang-cc, communicate with the (clang) target to discover the legal
features of a target, and the features which are enabled based on
-mcpu. This is currently hardcoded just enough to not be a feature
regression, we need to get this information from the backend's
TableGen information somehow.

This is used to construct the full list of features which are being
used, which is in turn used to initialize the predefines.

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

15 years agoremove commented code.
Zhongxing Xu [Wed, 6 May 2009 02:54:11 +0000 (02:54 +0000)]
remove commented code.

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

15 years agoadd some content
Chris Lattner [Wed, 6 May 2009 02:47:51 +0000 (02:47 +0000)]
add some content

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

15 years agoMake StoreManager::CastRegion() virtual and implement a new CastRegion() for
Zhongxing Xu [Wed, 6 May 2009 02:42:32 +0000 (02:42 +0000)]
Make StoreManager::CastRegion() virtual and implement a new CastRegion() for
RegionStore.

This CastRegion() performs casts according to the kind of the region being
cast instead of the type that is cast to.

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

15 years agoAdd --analyze-auto.
Daniel Dunbar [Wed, 6 May 2009 02:12:32 +0000 (02:12 +0000)]
Add --analyze-auto.
 - Currently just an alias for --analyze, eventually we want to refit
   --analyze so that it is less automatic (i.e., does not force plist
   output and does not hard code the list of checks).

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

15 years agoUpdate checker build.
Ted Kremenek [Wed, 6 May 2009 00:14:14 +0000 (00:14 +0000)]
Update checker build.

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

15 years agoOverride some pod2man defaults.
Daniel Dunbar [Wed, 6 May 2009 00:10:37 +0000 (00:10 +0000)]
Override some pod2man defaults.

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

15 years agoFixes a bug for objc2's gc in the presense of type-casts.
Fariborz Jahanian [Tue, 5 May 2009 23:28:21 +0000 (23:28 +0000)]
Fixes a bug for objc2's gc in the presense of type-casts.

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

15 years agoBugReporter (extensive diagnostics): improve location context generation for the
Ted Kremenek [Tue, 5 May 2009 23:13:38 +0000 (23:13 +0000)]
BugReporter (extensive diagnostics): improve location context generation for the
start of 'do' and '@synchronized' statements.

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

15 years agosource-level CFG: have the body for the @synchronized start with its own basic
Ted Kremenek [Tue, 5 May 2009 23:11:51 +0000 (23:11 +0000)]
source-level CFG: have the body for the @synchronized start with its own basic
block. This makes it a little easier for diagnostics generation.

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

15 years agoBugReporter (extensive diagnostics): Fix getEnclosingStmtLocation to reason
Ted Kremenek [Tue, 5 May 2009 22:19:17 +0000 (22:19 +0000)]
BugReporter (extensive diagnostics): Fix getEnclosingStmtLocation to reason
about Exprs that are not consumed and fix where the loop iteration diagnostic
goes.

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

15 years agoFix subtle bug in ParentMap::isConsumedExpr(): correctly ignore *parents* that
Ted Kremenek [Tue, 5 May 2009 22:16:12 +0000 (22:16 +0000)]
Fix subtle bug in ParentMap::isConsumedExpr(): correctly ignore *parents* that
are ParenExpr or CastExprs.

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

15 years agoFix rdar://6849429 - -Wunused-value with deeply nested macro expansion generates...
Chris Lattner [Tue, 5 May 2009 22:03:18 +0000 (22:03 +0000)]
Fix rdar://6849429 - -Wunused-value with deeply nested macro expansion generates untraceable warnings

The "instantiated from" messages coming from the caret diagnostics system are
basically walking the macro expansion tree, emitting each level as it goes.  However, it was
skipping certain leaves in the tree by skipping up the entire instantiation arm every time
it went up one spelling arm.  This caused it to miss some things.  For example, in this
testcase:

#define M1(x) x
#define M2 1;

void foo() {
 M1(M2)
}

we now print:

/Users/sabre/Desktop/clang-unused-value-macro.c:6:2: warning: expression result unused

 M1(M2)
 ^~~~~~
/Users/sabre/Desktop/clang-unused-value-macro.c:6:5: note: instantiated from:

 M1(M2)
    ^~
/Users/sabre/Desktop/clang-unused-value-macro.c:3:12: note: instantiated from:

#define M2 1;
           ^

Previously we didn't print the last line, so we never emitted the caret pointing to the 1!

Incidentally, the spaces between the lines is really noisy, I think we should reconsider
this heuristic (which adds them when the printed code starts too close to the start of the
line).

The regression test can't use -verify, because -verify doesn't catch notes for macro
instantiation history.

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

15 years agorename test
Chris Lattner [Tue, 5 May 2009 21:52:01 +0000 (21:52 +0000)]
rename test

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