Chris Lattner
cf868c458c
replace a dirty hack with a clean solution. Too bad we can't
...
use Blocks for our callbacks ;-)
llvm-svn: 65083
2009-02-19 23:53:20 +00:00
Ted Kremenek
68abaa984d
retain/release checker: Generate an intermediate simulation node for "leak"
...
transitions and then generate a subsequent node that removes the dead symbol
bindings. This should drastically improve caching in the simulation graph when
retain-counted objects are being tracked.
llvm-svn: 65082
2009-02-19 23:47:02 +00:00
Chris Lattner
810d330cd3
Fix a long standard problem with clang retaining "too much" sugar
...
information about types. We often print diagnostics where we say
"foo_t" is bad, but the user doesn't know how foo_t is declared
(because it is a typedef). Fix this by expanding sugar when present
in a diagnostic (and not one of a few special cases, like vectors).
Before:
t.m:5:2: error: invalid operands to binary expression ('typeof(P)' and 'typeof(F)')
MAX(P, F);
^~~~~~~~~
t.m:1:78: note: instantiated from:
#define MAX(A,B) ({ __typeof__(A) __a = (A); __typeof__(B) __b = (B); __a < __b ? __b : __a; })
^
After:
t.m:5:2: error: invalid operands to binary expression ('typeof(P)' (aka 'struct mystruct') and 'typeof(F)' (aka 'float'))
MAX(P, F);
^~~~~~~~~
t.m:1:78: note: instantiated from:
#define MAX(A,B) ({ __typeof__(A) __a = (A); __typeof__(B) __b = (B); __a < __b ? __b : __a; })
^
llvm-svn: 65081
2009-02-19 23:45:49 +00:00
Ted Kremenek
513f0b147e
Added a new method to GRStmtNodeBuilder to build nodes using an arbitrary
...
PostStmt program point. This allows clients to pass in PostStmtCustom program
points.
llvm-svn: 65080
2009-02-19 23:45:28 +00:00
Ted Kremenek
406d2c17f5
ProgramPoint::Profile now specially handles PostStmtCustom (hashes on tag and data) so that clients don't need a unique address for the pair itself.
...
llvm-svn: 65079
2009-02-19 23:43:16 +00:00
Chris Lattner
a8bac26e2c
pretty printing vector types should print the element type, not just the attribute.
...
llvm-svn: 65078
2009-02-19 23:42:29 +00:00
Fariborz Jahanian
0f466c746f
More objc's gc ir-gen stuff.
...
llvm-svn: 65077
2009-02-19 23:36:06 +00:00
Chris Lattner
ae0197e134
GetTypeForDeclarator can return null on error now, handle this.
...
llvm-svn: 65076
2009-02-19 23:13:55 +00:00
Daniel Dunbar
2a07da78c0
ccc: Give nicer error when spawning a subprocess fails.
...
llvm-svn: 65075
2009-02-19 22:59:57 +00:00
Daniel Dunbar
1c8560d93e
Extend Evaluate() to fold (int) <pointer type>.
...
- PR3463, PR3398, <rdar://problem/6553401> crash on relocatable
symbol addresses as constants in static locals.
- There are many more scenarious we could handle (like arithmetic on
such an int) but this is the main use case.
llvm-svn: 65074
2009-02-19 22:24:01 +00:00
Daniel Dunbar
cf04aa1a02
Simplify, no functionality change.
...
llvm-svn: 65073
2009-02-19 22:16:29 +00:00
Ted Kremenek
e76eb060c7
Fix another PTH warning that should not be a note.
...
llvm-svn: 65072
2009-02-19 22:14:49 +00:00
Ted Kremenek
36b005db45
Make PTH warnings actual warnings instead of 'notes'.
...
llvm-svn: 65071
2009-02-19 22:13:40 +00:00
Mike Stump
a67033294a
Add enough checking to ensure that non-constant block literals don't
...
appear to be constant. I'll probably redo this and throw it all away
later once we have codegen for BlockDeclRefExprs.
llvm-svn: 65070
2009-02-19 22:01:56 +00:00
Daniel Dunbar
a118a07157
ccc: Also look for .gch files when seeing if we should auto load a
...
token-cache for clang.
llvm-svn: 65069
2009-02-19 22:01:23 +00:00
Bill Wendling
7b9f38ad37
Temporarily revert r65065. It was causing test failures.
...
llvm-svn: 65068
2009-02-19 21:57:07 +00:00
Bill Wendling
1a0a3d0ff5
Print out debug info when printing the machine instruction.
...
llvm-svn: 65067
2009-02-19 21:44:55 +00:00
Daniel Dunbar
18e1444f82
Remove IRgen constant emission assumption that LValue APValue results
...
only occur for pointer types; they are also possible for integer types
now.
- No intended functionality change, IntExprEvaluate doesn't return
LValue results yet.
llvm-svn: 65066
2009-02-19 21:44:24 +00:00
Bill Wendling
df78dcc0b2
Check for -fast here too.
...
llvm-svn: 65065
2009-02-19 21:23:54 +00:00
Bill Wendling
19e0a5b3c3
Generate these labels when we're in "fast" mode, not simply when we're no in
...
"optimize-for-size" mode.
llvm-svn: 65064
2009-02-19 21:12:54 +00:00
Daniel Dunbar
ca097adca8
Change IntExprEvaluator to operate on an APValue not an APSInt.
...
- Prep for handling lvalues, no intended functionality change.
llvm-svn: 65063
2009-02-19 20:17:33 +00:00
Dale Johannesen
f6a71b39b7
Describe tail merging's use of InsertBranch.
...
llvm-svn: 65062
2009-02-19 19:40:21 +00:00
Dan Gohman
a34d7adefb
Use DEBUG() instead of passing *DOUT to WriteAsOperand,
...
since the latter just passes a null reference when
debugging is not enabled.
llvm-svn: 65060
2009-02-19 19:32:06 +00:00
Daniel Dunbar
96f8677e11
Arguments to unordered comparison builtins may need implicit casts.
...
- <rdar://problem/6094103> sema fails to promote type arguments to __builtin_isgreater (and friends)
llvm-svn: 65059
2009-02-19 19:28:43 +00:00
Dan Gohman
30a2959367
Make the debug output of LSR less cryptic and more informative.
...
llvm-svn: 65057
2009-02-19 19:23:27 +00:00
Anders Carlsson
f96954ca30
Add irgen support for the noinline attribute.
...
llvm-svn: 65056
2009-02-19 19:22:11 +00:00
Anders Carlsson
880971241b
Add sema support for the noinline attribute.
...
llvm-svn: 65055
2009-02-19 19:16:48 +00:00
Ted Kremenek
193cbdcbe3
Update checker build.
...
llvm-svn: 65054
2009-02-19 19:08:21 +00:00
Daniel Dunbar
e3c92bc672
Add another IntExprEvaluator::Success overload to suck up remained of
...
manual setting of the Result.
- Idiom now enforces that result will always have correct width and
type; this exposed three new bugs:
o Enum constant decl value can have different width than type
(PR3173).
o EvaluateInteger should not run an IntExprEvaluator over
non-integral expressions.
o FloatExprEvaluate was not handling casts correctly (it was
evaluating the cast in the IntExprEvaluator!).
llvm-svn: 65053
2009-02-19 18:37:50 +00:00
Chris Lattner
91668def8b
fix PR3609, emit:
...
t.c:1:10: error: missing terminating '>' character
#include <stdio.h
^
instead of:
t.c:1:10: error: missing terminating " character
#include <stdio.h
^
llvm-svn: 65052
2009-02-19 18:29:56 +00:00
Fariborz Jahanian
3114e94e10
Generate the conservative objc gc's API for now.
...
llvm-svn: 65051
2009-02-19 18:29:24 +00:00
Ted Kremenek
bea465aefb
Update test case to include a leak that occurs at the place of allocation.
...
llvm-svn: 65048
2009-02-19 18:20:28 +00:00
Ted Kremenek
deafc5c601
retain/release checker: Fix crasher when the leak site is the same expression that allocates an object.
...
llvm-svn: 65047
2009-02-19 18:18:48 +00:00
Chris Lattner
780b46fd50
Fix PR3619 by properly considering size modifiers and type quals when
...
uniquing array types.
llvm-svn: 65046
2009-02-19 17:31:02 +00:00
Zhongxing Xu
69aac369c3
only track integer and pointer values for now.
...
llvm-svn: 65041
2009-02-19 09:56:08 +00:00
Gabor Greif
837707e52a
fix typo
...
llvm-svn: 65040
2009-02-19 09:27:40 +00:00
Bill Wendling
82d8f120ec
Print out a new label only if the debug location *tuple* is different. The debug
...
locations may change, but the tuples may be the same.
llvm-svn: 65039
2009-02-19 09:16:38 +00:00
Daniel Dunbar
8aafc89db8
Add IntExprEvaluator::Success method.
...
- Handles assignment to Result with appropriate type.
- Simplifies & encapsulates most direct handling of the Result value;
prep for allowing IntExprEvaluator to deal with LValue APValues.
- No intended functionality change.
llvm-svn: 65038
2009-02-19 09:06:44 +00:00
Zhongxing Xu
e6e76aa571
fix test case
...
llvm-svn: 65037
2009-02-19 08:45:23 +00:00
Zhongxing Xu
5b9223fcf2
add test case.
...
llvm-svn: 65036
2009-02-19 08:42:43 +00:00
Zhongxing Xu
f74ab25e22
Convert the offset to signed before making an ElementRegion with it. It seems
...
that this problem arises from time to time. We should find a fundamental
solution for it.
llvm-svn: 65035
2009-02-19 08:37:16 +00:00
Bill Wendling
13aada6fc4
Forgot to check that debug information is supported.
...
llvm-svn: 65034
2009-02-19 08:06:12 +00:00
Ted Kremenek
1d1d39757a
Update checker build.
...
llvm-svn: 65033
2009-02-19 07:22:21 +00:00
Daniel Dunbar
f0acf7bd4c
Don't emit K&R unprototyped function definitions as varargs.
...
- <rdar://problem/6584606> clang/x86-64 - too many reg saves
llvm-svn: 65032
2009-02-19 07:15:39 +00:00
Daniel Dunbar
5c275a94fb
Add Type::getAsFunctionNoProto
...
llvm-svn: 65031
2009-02-19 07:11:26 +00:00
Chris Lattner
124bb197a7
only do one DenseMap lookup instead of two (one to find out if there is
...
already an entry and one to insert).
llvm-svn: 65030
2009-02-19 07:05:16 +00:00
Chris Lattner
74c04eb99e
minor simplification.
...
llvm-svn: 65029
2009-02-19 07:02:09 +00:00
Chris Lattner
dfd6b3d190
use early exit to reduce indentation.
...
llvm-svn: 65028
2009-02-19 07:00:44 +00:00
Chris Lattner
bd4dc67bd2
standardise on bastardised american spelling.
...
llvm-svn: 65027
2009-02-19 06:49:30 +00:00
Chris Lattner
06ef388a61
fix a bug introduced in my previous patch: moving clang headers to the
...
"after" group instead of the system group makes it so #include <limits.h>
picks up the *system* limits.h file before clang's. This causes a failure
on linux and is definitely not what we want.
llvm-svn: 65026
2009-02-19 06:48:28 +00:00