Ted Kremenek
55842bd269
Don't analyze .o files.
...
llvm-svn: 51546
2008-05-24 16:09:00 +00:00
Ted Kremenek
f18f460716
Cleanup indentation and remove some dead code.
...
Analyze files not compiled using "-c". This fixes:
<rdar://problem/5961638> invoke checker when gcc is not called with "-c"
llvm-svn: 51545
2008-05-24 15:58:54 +00:00
Ted Kremenek
a08154d85f
Call the correct destructor.
...
llvm-svn: 51544
2008-05-24 15:09:56 +00:00
Steve Naroff
04c3299652
This fixes a VC++ build failure.
...
llvm-svn: 51528
2008-05-24 00:16:40 +00:00
Chris Lattner
10a7bd6341
fix a nasty off-by-one error.
...
llvm-svn: 51519
2008-05-23 23:29:33 +00:00
Chris Lattner
78f37e6d28
add some assertions to catch bad things before they die
...
somewhere deep in rewrite rope.
llvm-svn: 51515
2008-05-23 23:10:58 +00:00
Chris Lattner
17c2476d0b
fix an inconsistency computing offsets that caused a crash on rewrite-nest.m
...
llvm-svn: 51514
2008-05-23 23:06:56 +00:00
Ted Kremenek
567f333f23
Disable the use of PCH files when using xcodebuild.
...
llvm-svn: 51509
2008-05-23 22:18:16 +00:00
Steve Naroff
b3424a9ab6
Minor tweak to -ast-dump for ivars.
...
llvm-svn: 51508
2008-05-23 22:01:24 +00:00
Steve Naroff
59fefb56b1
Fix range info for explicit ivar refs.
...
llvm-svn: 51507
2008-05-23 22:00:37 +00:00
Ted Kremenek
20ccc4c3ed
Revert r51498: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDecl.cpp?rev=51498&r1=51497&r2=51498&view=diff
...
Turns out that there are multiple places where a redefinition diagnostic can be emitted. A cleaner solution (without touching Sema) is to have
the Driver turn off these diagnostics. (will submit this patch soon)
llvm-svn: 51502
2008-05-23 21:28:18 +00:00
Steve Naroff
c11802a521
Remove a diagnostic (temporary hack that will be removed next week).
...
llvm-svn: 51498
2008-05-23 20:57:38 +00:00
Chris Lattner
37f5b7d39c
minor changes, collect the range of an expr before rewriting the subexprs
...
no functionality change.
llvm-svn: 51497
2008-05-23 20:40:52 +00:00
Steve Naroff
fd16687b9a
Make sure method definitions get output with -ast-dump.
...
llvm-svn: 51494
2008-05-23 18:50:58 +00:00
Ted Kremenek
a4951b7796
When known, include the analyzer build in the output of scan-build.
...
llvm-svn: 51492
2008-05-23 18:17:05 +00:00
Ted Kremenek
6849601f69
More test cases for retain/release checker. These cases handle not flagging leaks for static variables.
...
llvm-svn: 51486
2008-05-23 17:25:17 +00:00
Gabor Greif
f61cb42ab5
fix typo
...
llvm-svn: 51479
2008-05-23 11:19:39 +00:00
Ted Kremenek
d6795749a6
Unbreak build. Forget to check in this header file change with a previous commit.
...
llvm-svn: 51470
2008-05-23 02:53:24 +00:00
Ted Kremenek
47c96d011e
Fix typo.
...
llvm-svn: 51466
2008-05-23 01:40:41 +00:00
Steve Naroff
e3fa7136b0
Tweak AST dumper for ObjC ivars.
...
llvm-svn: 51463
2008-05-23 00:59:14 +00:00
Ted Kremenek
db622628e8
Additional retain/release checker regression tests.
...
llvm-svn: 51454
2008-05-22 23:46:11 +00:00
Ted Kremenek
b91ef1b62b
Prototyped support in the BugReporter to emit diagnostics of the form "p now aliases q".
...
llvm-svn: 51453
2008-05-22 23:45:19 +00:00
Steve Naroff
4c290c7c0b
Make sure the source location for @property points the the @-sign (not the decl spec).
...
Also added a FIXME related to how we represent @properties in the ObjCInterfaceDecl AST.
llvm-svn: 51450
2008-05-22 23:24:08 +00:00
Dan Gohman
5d30975e5e
Change uses of llvm::Type::isFirstClassType to use the new
...
llvm::Type::isSingleValueType. Currently these two functions have
the same behavior, but soon isFirstClassType will return true for
struct and array types.
Clang may some day want to use of isFirstClassType for some of
these some day as an optimization, but it'll require some
consideration.
llvm-svn: 51446
2008-05-22 22:12:56 +00:00
Ted Kremenek
1df2f3a1f5
Expand retain/release checker to consider methods/function calls that cause a
...
tracked object to "escape": it's reference count might be incremented by the
called function, thus causing an object's lifetime to extend beyond when the
local reference count is decremented to 0.
This addresses: <rdar://problem/5933215>
llvm-svn: 51433
2008-05-22 17:31:13 +00:00
Ted Kremenek
a4010c698c
Don't use ostringstream (pulling in <sstream>) when creating the dead store diagnostic (simply not needed).
...
llvm-svn: 51432
2008-05-22 16:28:24 +00:00
Ted Kremenek
0954b4564e
Update driver include paths to work on darwin10.
...
llvm-svn: 51431
2008-05-22 15:26:22 +00:00
Eli Friedman
bb5de96bc8
Patch for PR2350; the issue was tnat we were allowing (with an error)
...
void f(const void) in one place and rejecting it in another.
llvm-svn: 51424
2008-05-22 08:54:03 +00:00
Eli Friedman
1763075b9c
Make debugging information usable. This is barebones, but it makes -g
...
actually work (instead of crashing llc), and there's enough info emitted
to get line number information in gdb. This should hopefully be helpful
for debugging non-working programs.
I got rid of the begin/endregion calls because the implementation wasn't
working; someone who knows the debugging info a bit better might try to
add it. I really have no clue how a compiler is supposed to emit them.
This commit shouldn't have any effect without -g.
llvm-svn: 51404
2008-05-22 01:40:10 +00:00
Eli Friedman
c7460b1011
Minor refactoring: compute the return value separately from emitting the
...
ret.
llvm-svn: 51403
2008-05-22 01:22:33 +00:00
Eli Friedman
e53d15386f
Make CurFuncDecl more specific; I have some code I'm going to land in a
...
bit that wants to use CurFuncDecl as a FunctionDecl.
llvm-svn: 51402
2008-05-22 01:16:59 +00:00
Dan Gohman
75d69da5ab
Move getAccessedFieldNo out of lib/AST/Expr.cpp into
...
lib/CodeGen/CGExpr.cpp and to change include/clang/AST/Attr.h to
use its own enum for visibility types instead of using
llvm::GlobalValue::VisibilityTypes. These changes eliminate
dependencies in the AST library on LLVM's VMCore library.
llvm-svn: 51398
2008-05-22 00:50:06 +00:00
Ted Kremenek
91f035cda7
Improve dead stores diagnostics to include the variable name.
...
llvm-svn: 51395
2008-05-21 22:59:16 +00:00
Dan Gohman
dac7fe424f
Remove the unneeded #include of VMCore header "llvm/DerivedTypes.h".
...
llvm-svn: 51392
2008-05-21 20:26:42 +00:00
Dan Gohman
1627ae7c48
Explicitly #include Support/Streams.h when using llvm::cout and friends.
...
llvm-svn: 51391
2008-05-21 20:19:16 +00:00
Ted Kremenek
a2157719be
Add Destroy method to Types, making there destruction more harmonious with
...
the destruction of Decls and Stmts.
llvm-svn: 51385
2008-05-21 16:38:54 +00:00
Ted Kremenek
f025a8bc1c
Fix potential double-free.
...
llvm-svn: 51381
2008-05-21 16:00:02 +00:00
Steve Naroff
e181c13593
Fixup ASTContext::PrintStats()...it was causing several test failures.
...
llvm-svn: 51380
2008-05-21 15:59:22 +00:00
Ted Kremenek
512d9412ec
When destroying DeclStmts, also destroy the associated Decl (reclaim its memory).
...
llvm-svn: 51379
2008-05-21 15:53:55 +00:00
Ted Kremenek
b120ff1b95
Fixed bug in the transfer function for dereferences: the loaded value from EvalLoad should bind to the UnaryOperator*, not its subexpression.
...
Added test case to exercise this fix when checking for uses of uninitialized values.
Patch by Zhongxing Xu!
llvm-svn: 51377
2008-05-21 15:48:33 +00:00
Eli Friedman
9a5ffcb14e
Remove an unnecessary/buggy if check. Ran into this with some other
...
changes in my tree, so I don't have a testcase which affects trunk.
llvm-svn: 51371
2008-05-21 13:24:44 +00:00
Eli Friedman
43f6b67135
A small testcase; no patch, since it was a bug in a patch I never
...
committed.
llvm-svn: 51370
2008-05-21 13:21:01 +00:00
Eli Friedman
0ceef458b6
Fix this test so that it's valid; the point is to test for the crash,
...
not the missing diagnostic.
llvm-svn: 51365
2008-05-21 05:37:55 +00:00
Eli Friedman
b158b4a47b
Fix the destruction "properly" in the sense that we actually destroy the
...
ASTs. This is a hack, but I haven't considered how we really
want to do this.
llvm-svn: 51364
2008-05-21 05:33:10 +00:00
Eli Friedman
0883bfb541
PR2347: Fix crash iterating over VLAs; this started triggering because
...
we now iterate over the whole AST when we destroy it.
llvm-svn: 51363
2008-05-21 05:06:46 +00:00
Eli Friedman
14b2993484
Don't kill the declarations if the translation unit doesn't own them
...
(specifically, for TranslationUnits created from SerializationTest.cpp).
Fixes a double-free bug in the serialization tests.
llvm-svn: 51362
2008-05-21 05:01:55 +00:00
Eli Friedman
86346ede95
Fix a couple of bugs found by Neil Booth in the const-ness checking.
...
llvm-svn: 51361
2008-05-21 03:39:11 +00:00
Eli Friedman
bcfa2d75d7
Protect iso646.h from C++ (although I can't imagine why someone would
...
need it...). Patch by Mike Stump.
llvm-svn: 51360
2008-05-21 03:11:31 +00:00
Steve Naroff
52ef6f5231
Add SemaInit.cpp to VC++ proj.
...
llvm-svn: 51330
2008-05-20 20:39:37 +00:00
Nuno Lopes
27f8407406
initialize variable and fix a bunch of test failures
...
llvm-svn: 51326
2008-05-20 18:03:51 +00:00
Nuno Lopes
652eaab03c
fix warning with gcc 4.1 (ptr to bool convertion)
...
llvm-svn: 51324
2008-05-20 17:33:56 +00:00
Eli Friedman
cc6b071c1e
Remove hacks from ASTContext now that alignment gets reported correctly.
...
llvm-svn: 51322
2008-05-20 15:17:39 +00:00
Eli Friedman
7cef49e2d8
Missed an include.
...
llvm-svn: 51321
2008-05-20 14:27:34 +00:00
Eli Friedman
1ca6476ac5
Minor correction for PPC targets.
...
llvm-svn: 51320
2008-05-20 14:25:01 +00:00
Eli Friedman
b53660698a
Some small changes to make the target info a bit more accurate.
...
llvm-svn: 51319
2008-05-20 14:21:01 +00:00
Eli Friedman
d5a55bd466
Perform stricter/more accurate checking for C99 constant expressions
...
in Sema, per discussion on mailing list. This doesn't cause any changes
in the test results. I'll probably add some more tests at some point,
but it's an open question what we need to accept to be compatible with
real code.
This doesn't touch the existing isConstantExpr method on Expr; that
should be addressed somehow eventually (either removed or refined to
whatever is appropriate).
llvm-svn: 51318
2008-05-20 13:48:25 +00:00
Eli Friedman
9e9b046ac9
Add a couple more headers. stddef was discussed on cfe-dev, and
...
consensus was that it was fine; iso646 is trivial.
We actually don't need that many headers overall... on Ubuntu, at least,
all we need are stdint.h, stdarg.h, limits.h, and float.h to stop
depending on having gcc's headers around for normal code.
On a side note, the path searching needs some improvement; I had to
hardcode the path to my header directory into clang.cpp to get the
driver to use it consistently.
llvm-svn: 51317
2008-05-20 13:34:26 +00:00
Eli Friedman
4b44e2ee8c
Test from PR2332; bug already fixed by r51311.
...
llvm-svn: 51316
2008-05-20 12:55:29 +00:00
Eli Friedman
3ed1d5f496
Disable the function address cache; this doesn't have any ill effects,
...
as far as I can tell, and it fixes code like test/CodeGen/functions.c.
(Whatever performance effect it might have, crashing on a
construct like this isn't really acceptable; I've run into this
multiple times.)
llvm-svn: 51312
2008-05-20 09:21:07 +00:00
Eli Friedman
2460b0c941
Fix the scope of K&R-style argument declarations so that they don't
...
extend beyond the end of the function.
I'm not completely sure this is the right way to fix this bug, so
someone familiar with the parser should double-check.
llvm-svn: 51311
2008-05-20 09:10:20 +00:00
Eli Friedman
f77daf5e58
Fix test (it was incorrectly succeeding).
...
llvm-svn: 51310
2008-05-20 09:04:19 +00:00
Eli Friedman
53e38bd6b6
Add codegen support for stack address intrinsics.
...
llvm-svn: 51309
2008-05-20 08:59:34 +00:00
Eli Friedman
503731aa22
Fix typo in test.
...
llvm-svn: 51308
2008-05-20 08:27:04 +00:00
Eli Friedman
f8353034eb
Add __builtin_frame_address and __builtin_return_address gcc builtins to
...
Sema. No codegen yet.
llvm-svn: 51307
2008-05-20 08:23:37 +00:00
Eli Friedman
4b0e2a30e0
Implement codegen for comma operator for structs.
...
llvm-svn: 51304
2008-05-20 07:56:31 +00:00
Eli Friedman
d0e48ea682
Be a bit more defensive in SemaInit.
...
llvm-svn: 51301
2008-05-20 05:25:56 +00:00
Eli Friedman
37a186d765
Add some more checking for compound literals.
...
llvm-svn: 51300
2008-05-20 05:22:08 +00:00
Ted Kremenek
78aa98f7b8
Reclaim memory from chains of ScopedDecls, and reclaim memory for the initializers of EnumConstantDecls.
...
llvm-svn: 51299
2008-05-20 04:49:55 +00:00
Ted Kremenek
40e489dfd8
Delete AST nodes, not just Decls.
...
llvm-svn: 51298
2008-05-20 04:10:52 +00:00
Ted Kremenek
fa8a09e0bc
Reclaim memory allocated for ParmVarDecl's in FunctionDecl::Destroy.
...
Fixed a bug in ParmVarDecl::param_end(): Handle the case where there are no
ParmVarDecls for a FunctionDecl, but its function prototype has formal arguments
(can happen with typedefs).
llvm-svn: 51297
2008-05-20 03:56:00 +00:00
Ted Kremenek
878ff6c04d
When serializing FunctionDecl, serialize out a reference to the previous declaration.
...
llvm-svn: 51294
2008-05-20 03:33:58 +00:00
Ted Kremenek
b865b38eda
Remove unnecessary #include (introduced by a recent patch of mine).
...
llvm-svn: 51288
2008-05-20 00:47:23 +00:00
Ted Kremenek
ce20e8fe8d
Try to plug some memory leaks...
...
1) Sema::ParseAST now constructs a TranslationUnit object to own the top-level Decls, which releases the top-level Decls upon exiting ParseAST.
2) Bug fix: TranslationUnit::~TranslationUnit handles the case where a Decl is added more than once as a top-level Decl.
3) Decl::Destroy is now a virtual method, obviating the need for a special dispatch based on DeclKind.
3) FunctionDecl::Destroy now releases its Body using its Destroy method.
4) Added Stmt::Destroy and Stmt::DestroyChildren, which recursively delete the child ASTs of a Stmt and call their dstors. We may need to special case dstor/Destroy methods for particular Stmt subclasses that own other dynamically allocated objects besides AST nodes.
5) REGRESSION: We temporarily are not deallocating attributes; a FIXME is provided.
llvm-svn: 51286
2008-05-20 00:43:19 +00:00
Eli Friedman
247ee87e26
Restructure constant structure init codegen so that it's possible to
...
implement bitfield codegen (although I don't envy the person who
implements it). This also prevents a crash on code like that from PR2309
(it's still broken, but it fails more gracefully).
llvm-svn: 51285
2008-05-20 00:11:07 +00:00
Eli Friedman
8d0b976e7c
Remove code that shouldn't have any effect anymore.
...
llvm-svn: 51284
2008-05-20 00:04:21 +00:00
Eli Friedman
a3a4068949
Implement CodeGen for __builtin_memcpy.
...
llvm-svn: 51282
2008-05-19 23:27:48 +00:00
Ted Kremenek
3b965e1d01
Updated Xcode project.
...
llvm-svn: 51281
2008-05-19 23:19:04 +00:00
Ted Kremenek
ee5794265a
Added Stmt::DestroyChildren, which will be used by the dstors of the subclasses of Stmt to recursively delete their child AST nodes.
...
llvm-svn: 51278
2008-05-19 22:02:12 +00:00
Eli Friedman
ca8da1d89d
Make the unused expression warning a bit less aggressive (found in PHP
...
code).
llvm-svn: 51276
2008-05-19 21:24:43 +00:00
Eli Friedman
a68c3006f4
Switch on SemaInit; this makes some code in SemaDecl dead, but I'll give
...
it a few days to make sure there aren't any significant regressions.
llvm-svn: 51273
2008-05-19 20:29:35 +00:00
Eli Friedman
6fcdec280b
Adjust warning so that it doesn't fire when there is an error.
...
llvm-svn: 51269
2008-05-19 20:20:43 +00:00
Eli Friedman
541268086a
Remove illegal test.
...
llvm-svn: 51267
2008-05-19 20:17:34 +00:00
Eli Friedman
feb4cc1c6a
Add errors for some illegal constructs (specifically, "int a = {{3}};"
...
and "int a = {};"). I'll adjust the tests in a bit.
llvm-svn: 51265
2008-05-19 20:12:18 +00:00
Eli Friedman
5a36d3fffb
Some more SemaInit cleanup.
...
llvm-svn: 51262
2008-05-19 20:00:43 +00:00
Eli Friedman
23a9e3176c
Various fixes; solves (almost) all of the test regressions that would be
...
caused by enabling SemaInit.
llvm-svn: 51261
2008-05-19 19:16:24 +00:00
Eli Friedman
f23b6fa41f
Fix the emission of expressions like char a[10] = "asdf"; previously,
...
they were causing bad code to be emitted. There are two fixes here: one
makes sure we emit a string that is long enough, and one makes sure we
properly handle string initialization in init lists.
llvm-svn: 51259
2008-05-19 17:51:16 +00:00
Eli Friedman
8e12298192
Add proper type-checking for pointer additiion; before, we were accepting
...
addition with a pointer and an integer even when it didn't make sense.
llvm-svn: 51228
2008-05-18 18:08:51 +00:00
Eli Friedman
f2442dcc8d
Fix support for _Bool bitfields. The issue is that the bitfield width
...
used for _Bool is not the same as the primitive width (which for _Bool
is 1 bit). The load and store changes add some casts to make the
types consistent. The EmitLValue changes make sure that the pointer is
of an appropriate type for loading the bitfield.
This isn't perfect, but it's an improvement, and getting everything
right depends on actually laying out structs in an ABI-compliant way.
llvm-svn: 51224
2008-05-17 20:03:47 +00:00
Ted Kremenek
d727220d1a
Micro-optimization when checking for panic functions.
...
llvm-svn: 51214
2008-05-17 00:42:01 +00:00
Ted Kremenek
c8081b4e16
Fix 80 col violation.
...
llvm-svn: 51213
2008-05-17 00:40:45 +00:00
Ted Kremenek
0e76583574
Added panic function _XCAssertionFailureHandler.
...
llvm-svn: 51212
2008-05-17 00:33:23 +00:00
Eli Friedman
d5a4838e3d
Backout of codegen-based fix to PR2334; this has been fixed differently
...
at the Sema layer.
llvm-svn: 51203
2008-05-16 20:38:39 +00:00
Eli Friedman
928ab4d546
Sema-based fix for PR2334. The issue is that even if the two sides of
...
the condidtional have compatible types, they are not necessarily the
same type. Therefore, we cast to the composite type. As a hack, for
the moment we assume that the composite type is the type of the
left-hand expression; this isn't correct, but it's good enough for most
purposes.
llvm-svn: 51202
2008-05-16 20:37:07 +00:00
Nate Begeman
9800faa578
Fix some prototypes, and implement some builtins until we have our header files completed.
...
llvm-svn: 51199
2008-05-16 18:59:42 +00:00
Ted Kremenek
c812b23ce8
Cache leaks by the allocation site, not the leak location.
...
llvm-svn: 51198
2008-05-16 18:33:44 +00:00
Ted Kremenek
590abd363e
Partitioned BugTypeCachedLocation::isCached() into two methods: one that accepts and ExplodedNode, and the other that accepts a ProgramPoint. The default behavior is to cache bug reports by the
...
location they occur (the end node). Subclasses can override this behavior by providing a different ProgramPoint.
llvm-svn: 51197
2008-05-16 18:33:14 +00:00
Eli Friedman
823622105e
Review nit.
...
llvm-svn: 51196
2008-05-16 17:54:49 +00:00
Eli Friedman
a959a59ac6
Clean up ownership per review comment.
...
llvm-svn: 51195
2008-05-16 17:51:27 +00:00
Eli Friedman
bb0eb81ebf
Fix review nit.
...
llvm-svn: 51194
2008-05-16 17:44:00 +00:00
Eli Friedman
cb92a3f03b
Patch for PR2334, and a similar ObjC bug.
...
llvm-svn: 51193
2008-05-16 17:37:11 +00:00
Ted Kremenek
92137a3d8d
Added CFGBlock::hasBinaryBranchTerminator().
...
llvm-svn: 51190
2008-05-16 16:06:00 +00:00
Eli Friedman
db421caaa3
Minor cleanup to isBuiltinConstantExpr.
...
llvm-svn: 51188
2008-05-16 13:28:37 +00:00
Ted Kremenek
dd547b1ce9
Fixed another regression introduced by r51113 caused by some refactoring
...
in Sema::CheckFunctionCall:
http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20080512/005706.html
The bug was that the logic from the helper methods used by CheckFunctionCall
were being inverted (a subtle bug). This would cause the parser to discard
any valid AST nodes involving several builtins (see patch).
This removes the last regression failure I'm seeing in the test suite: Analysis-Apple/NoReturn.
llvm-svn: 51168
2008-05-15 22:24:49 +00:00
Ted Kremenek
98b730d5bb
Removed bogus "return true" in Expr::isConstantExpr that returned true for all
...
expressions. This appears to be a regression introduced in r51113 that caused
many test cases to fail (there is still a test case in the Analysis directory
that is failing):
http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20080512/005706.html
llvm-svn: 51164
2008-05-15 21:49:04 +00:00
Steve Naroff
ad91868aa6
Fix rewriter bug <rdar://problem/5929344> clang ObjC rewriter: "extern int __CFConstantStringClassReference[];" should be extern "C".
...
Have clang predefine OBJC_NEW_PROPERTIES (which is what gcc does).
llvm-svn: 51163
2008-05-15 21:12:10 +00:00
Steve Naroff
bdc67b382f
Revert...
...
Author: akirtzidis
Date: Wed May 14 05:00:15 2008
New Revision: 51101
URL: http://llvm.org/viewvc/llvm-project?rev=51101&view=rev
Log: Upgrading VC++ projects to VC++ 2008.
I really need to build with VC++ 2005.
llvm-svn: 51158
2008-05-15 19:53:06 +00:00
Argyrios Kyrtzidis
1a599ea820
Make isFileVarDecl() return true when the VarDecl is in a C++ namespace.
...
llvm-svn: 51153
2008-05-15 17:53:43 +00:00
Argyrios Kyrtzidis
212f91107a
Comments fix.
...
llvm-svn: 51151
2008-05-15 17:26:35 +00:00
Nate Begeman
6c59132241
Handle a couple missing builtins that will go away eventually when the various
...
intrin.h files are finished
llvm-svn: 51137
2008-05-15 07:38:03 +00:00
Steve Naroff
0424b0e70d
Add some of GCC's object checking builtin's.
...
llvm-svn: 51133
2008-05-14 22:12:15 +00:00
Eli Friedman
f0d0e9e174
Use double-underscores in front of all non-keywords to protect against
...
#define pollution.
llvm-svn: 51128
2008-05-14 20:32:22 +00:00
Ted Kremenek
1907394f74
Don't specify a -o option to clang when not using "-checker-cfref".
...
llvm-svn: 51124
2008-05-14 20:26:52 +00:00
Ted Kremenek
e0927a0f49
Fix variable misspelling.
...
llvm-svn: 51122
2008-05-14 20:20:46 +00:00
Ted Kremenek
cf05a830b1
Don't run clang on .s files.
...
llvm-svn: 51121
2008-05-14 20:17:17 +00:00
Eli Friedman
e94e0f66cd
Make header use the new __builtin_shufflevector builtin.
...
llvm-svn: 51117
2008-05-14 20:11:29 +00:00
Ted Kremenek
e3fc13a3e0
Added "-a" option to scan-build to select the analysis (ASTConsumer) used by clang. The default is -checker-cfref.
...
llvm-svn: 51116
2008-05-14 20:10:33 +00:00
Eli Friedman
a1b4ed8003
Implementation of __builtin_shufflevector, a portable builtin capable of
...
expressing the full flexibility of the LLVM shufflevector instruction.
The expected immediate usage is in *mmintrin.h, so that they don't
depend on the mess of gcc-inherited (and not completely implemented)
shuffle builtins.
llvm-svn: 51113
2008-05-14 19:38:39 +00:00
Ted Kremenek
0a8a0fa0b5
Zero-pad the month and day fields in the output HTML directory.
...
llvm-svn: 51109
2008-05-14 17:23:56 +00:00
Argyrios Kyrtzidis
881848119c
Update the clangSema VC++ project.
...
llvm-svn: 51104
2008-05-14 10:50:44 +00:00
Argyrios Kyrtzidis
3722daf62d
Change CRLF line endings to LF.
...
llvm-svn: 51103
2008-05-14 10:49:47 +00:00
Argyrios Kyrtzidis
7ebefaf3c7
Upgrading VC++ projects to VC++ 2008.
...
llvm-svn: 51101
2008-05-14 10:00:15 +00:00
Eli Friedman
7e452e59e4
An array of VLAs is a VLA. Shouldn't make any significant difference at
...
the moment, but it what you'd expect in the AST from reading the
standard, and it should make VLA codegen a bit more strightforward.
llvm-svn: 51086
2008-05-14 00:40:18 +00:00
Eli Friedman
9fd8b68568
Add codegen support for block-level compound literals.
...
llvm-svn: 51081
2008-05-13 23:18:27 +00:00
Eli Friedman
dd7406e65c
Add support for init lists for complex variables.
...
llvm-svn: 51080
2008-05-13 23:11:35 +00:00
Ted Kremenek
20a44ed730
Output #LINE for computing line counts.
...
llvm-svn: 51079
2008-05-13 22:56:36 +00:00
Ted Kremenek
7147584d03
Use "-i" option with make when ignoring errors.
...
llvm-svn: 51070
2008-05-13 21:28:02 +00:00
Nate Begeman
d386215916
Remove AST dependency on VMCore by switching ExtVectorElementExpr off Constant.
...
llvm-svn: 51068
2008-05-13 21:03:02 +00:00
Eli Friedman
58639e584c
Both operands to && have to be scalars, not just one.
...
llvm-svn: 51065
2008-05-13 20:16:47 +00:00
Ted Kremenek
52387a1828
Re-enable the analyzer.
...
llvm-svn: 51055
2008-05-13 17:10:28 +00:00
Eli Friedman
1a5754a26a
Detabify.
...
llvm-svn: 51042
2008-05-13 14:40:48 +00:00
Ted Kremenek
80ff5f0696
Place "-x" option before other analyzer options.
...
llvm-svn: 51014
2008-05-12 23:56:50 +00:00
Ted Kremenek
ece302d75b
Directly invoke gcc immediately instead of before we process the command line arguments.
...
llvm-svn: 51012
2008-05-12 23:47:41 +00:00
Steve Naroff
a98fe19c7e
Fix <rdar://problem/5924576> clang -fsyntax-only generates "redefinition" errors when parsing AppKit that gcc does not.
...
Teach Sema::MergeVarDecl() about __private_extern__.
llvm-svn: 51005
2008-05-12 22:36:43 +00:00
Ted Kremenek
f5a94e7114
Added internal command logging.
...
llvm-svn: 51003
2008-05-12 22:07:14 +00:00
Steve Naroff
bf1516c618
Fix <rdar://problem/5928590> clang -fsyntax-only: "incompatible operand types ('int' and 'void')" on input that 'gcc -fsyntax-only' eats
...
llvm-svn: 51002
2008-05-12 21:44:38 +00:00
Chris Lattner
c9c296d235
testcase for PR2263, fixed by Nate's r50903 patch.
...
llvm-svn: 50983
2008-05-12 18:31:17 +00:00
Ted Kremenek
2abde809ce
Unbreak build.
...
llvm-svn: 50980
2008-05-12 17:42:30 +00:00
Ted Kremenek
a0055a8ef5
Support StringLiteralVal when comparing LVal types.
...
llvm-svn: 50979
2008-05-12 17:41:30 +00:00
Ted Kremenek
8322da5fa3
Grammar cleanup in comment.
...
Remove redundant assignment.
llvm-svn: 50978
2008-05-12 17:40:56 +00:00
Ted Kremenek
babaa52efb
80 col violation fix.
...
llvm-svn: 50977
2008-05-12 17:40:13 +00:00
Ted Kremenek
92f78f4c04
When reading in the DeclCtx during deserialization, register the DeclCtx of the
...
ScopedDecl with the backpatcher, and *not* a local variable on the stack. The
value of DeclCtx gets filled in *later* by the backpatcher.
This fixes: http://llvm.org/bugs/show_bug.cgi?id=2308
llvm-svn: 50976
2008-05-12 17:29:34 +00:00
Ted Kremenek
9a15a9477b
Add Type::getAsTypedefType().
...
llvm-svn: 50970
2008-05-12 16:22:53 +00:00
Eli Friedman
6a7087e455
Emit basic block for switch body; fixes PR2307.
...
llvm-svn: 50968
2008-05-12 16:08:04 +00:00
Eli Friedman
6e31321043
Don't try to take the address of a bitfield; fixes PR2310.
...
llvm-svn: 50966
2008-05-12 15:06:05 +00:00
Nuno Lopes
de9746cd45
fix free/delete mismatch problem in add/mergeProperties (found by valgrind)
...
llvm-svn: 50945
2008-05-10 10:31:54 +00:00
Chris Lattner
14196c099f
Implement -rewrite-macros, which is a crazy macro expander that expands
...
macros but doesn't expand #includes, remove comments, remove #defines
etc.
For example:
----
#include <stdio.h>
#define bbaa
#define funclike(x) x "a" x "b" x
bbaa bbaa
#if 1
funclike("gar")
foo /*blah*/ bar
bar
#endif
#if 0
funclike()
#endif
----
rewrites to:
----
#include <stdio.h>
#define bbaa
#define funclike(x) x "a" x "b" x
/*bbaa bbaa*/
#if 1
"gar" "a" "gar" "b" "gar"/*funclike*//*("gar")*/
foo /*blah*/ bar
bar
#endif
#if 0
/*funclike()*/
#endif
----
llvm-svn: 50925
2008-05-10 00:02:33 +00:00
Ted Kremenek
acdde6f099
Rename IsPointerType to LVal::IsLValType, and update CFRefCount::EvalSummary to use IsLValType when conjuring symbols for return values (this fixes a bug with an assertion firing in the analyzer when two qualified objective-c types were compared).
...
llvm-svn: 50924
2008-05-09 23:45:33 +00:00
Argyrios Kyrtzidis
fa8e15bfa5
-Implement proper name lookup for namespaces.
...
-identifierResolver exposes an iterator interface to get all decls through the scope chain.
-The semantic staff (checking IdentifierNamespace and Doug's checking for shadowed tags were moved out of IdentifierResolver and back into Sema. IdentifierResolver just gives an iterator for all reachable decls of an identifier.
llvm-svn: 50923
2008-05-09 23:39:43 +00:00
Chris Lattner
664ef65981
make #if 0 code compile, even though it still isn't very useful.
...
llvm-svn: 50920
2008-05-09 22:43:24 +00:00
Mon P Wang
b84407d6ec
Added support to generate some atomic operators (add, sub, and, or etc..)
...
llvm-svn: 50919
2008-05-09 22:40:52 +00:00
Steve Naroff
d30f8c5b54
Fix <rdar://problem/5924225> clang ObjC rewriter: objc_exception_throw declaration in preamble does not match objc/objc-exception.h.
...
llvm-svn: 50915
2008-05-09 21:17:56 +00:00
Steve Naroff
530c3f9403
DO NOT pre-defined __OBJC2__. The __OBJC2__ macro should only be defined when targeting the new, Apple 2.0 *runtime ABI*. It is not intended to be used to #ifdef ObjC 2.0 langauge features. This is unfortunate (given it's name). In a perfect world, this defined would be named __OBJC2_RUNTIME_ABI__. Oh well.
...
llvm-svn: 50913
2008-05-09 20:52:28 +00:00
Steve Naroff
0889b9bfac
More VC++ project file updates.
...
llvm-svn: 50909
2008-05-09 19:10:27 +00:00
Ted Kremenek
82e8d07b02
Remove repeated word.
...
llvm-svn: 50907
2008-05-09 17:53:57 +00:00
Ted Kremenek
712c91f8a9
Add attribute "format" support for typedefs of function pointers.
...
llvm-svn: 50906
2008-05-09 17:36:24 +00:00
Ted Kremenek
bbd4695a45
Grammar.
...
llvm-svn: 50905
2008-05-09 17:13:18 +00:00
Ted Kremenek
4d180b36f3
Added text on librewrite and libanalysis to the README.
...
llvm-svn: 50904
2008-05-09 17:12:45 +00:00
Nate Begeman
1d30431002
Handle all attributes on a parameter
...
llvm-svn: 50903
2008-05-09 16:56:01 +00:00
Nate Begeman
f322eabbce
Extend vector member references to include {.hi, .lo, .e, .o} which return a
...
vector of the same element type and half the width, with the high, low, even,
and odd elements respectively.
Allow member references to member references, so that .hi.hi gives you the high
quarter of a vector. This is fairly convenient syntax for some insert/extract
operations.
Remove some unnecessary methods/types in the ExtVectorElementExpr class.
llvm-svn: 50892
2008-05-09 06:41:27 +00:00
Chris Lattner
ba7a6c14ed
set long/pointers to 64-bits on ppc64/x86-64
...
llvm-svn: 50891
2008-05-09 06:17:04 +00:00
Chris Lattner
5e2ef0c18a
parameterize pointer size/align better without doing virtual method calls in normal case.
...
llvm-svn: 50890
2008-05-09 06:08:39 +00:00
Chris Lattner
55258cf278
simplify some code, don't assume that sizeof(long) < sizeof(long long).
...
llvm-svn: 50888
2008-05-09 05:59:00 +00:00
Chris Lattner
5a9aaaf687
parameterize long long.
...
llvm-svn: 50887
2008-05-09 05:50:02 +00:00
Chris Lattner
5dc7ff1cf3
correctly parameterize long, patch by Nate.
...
llvm-svn: 50886
2008-05-09 05:47:41 +00:00
Chris Lattner
adb86418db
Fix rdar://5921025 a crash on the included testcase.
...
llvm-svn: 50885
2008-05-09 05:34:49 +00:00
Chris Lattner
2fdcddd78d
Don't call into objc front-end when not parsing objc code. This avoids
...
crashes because objc types aren't set up right.
llvm-svn: 50884
2008-05-09 05:28:21 +00:00
Steve Naroff
2e4e385a58
Make sure the prototype for objc_msgSend_fpret() returns a double.
...
llvm-svn: 50873
2008-05-08 22:02:18 +00:00
Nate Begeman
c58373886d
Add the non-immediate-shift vector builtins
...
llvm-svn: 50870
2008-05-08 21:51:12 +00:00
Ted Kremenek
0ae11a6f2e
Added initial support for supporting __NSString__ in attribute "format".
...
Still need to iron out some of the semantics (fixmes are present).
This addresses <rdar://problem/5916348>
llvm-svn: 50866
2008-05-08 19:43:35 +00:00
Ted Kremenek
27a4ba66fd
Updated Xcode project.
...
llvm-svn: 50864
2008-05-08 19:20:24 +00:00
Steve Naroff
b1c02371cd
Fix <rdar://problem/5879237> clang objc rewriter: ivars not accessible in structure generated for class
...
llvm-svn: 50862
2008-05-08 17:52:16 +00:00
Sanjiv Gupta
15cb669039
Added -g command line options to clang for generating source level debug information. This patch currently enables generation of line number debug information (stoppoints) and region begin/end debug information. The new files CGDebugInfo.h and CGDebugInfo.cpp implements the debug info manager class CGDebugInfo.
...
llvm-svn: 50848
2008-05-08 08:54:20 +00:00
Sanjiv Gupta
cd13ef01a2
Remove the ending "." from clang options descriptions.
...
llvm-svn: 50847
2008-05-08 08:28:14 +00:00
Chris Lattner
3c04ff00c2
start implementation of a macro rewriter, this is currently just stubbed out.
...
llvm-svn: 50845
2008-05-08 06:52:13 +00:00
Chris Lattner
b781dc79aa
Add basic support for the pic-* target triples and add support for
...
targets that do not support recursion (and thus codegen stack variables
as globals).
Patch contributed by Alireza Moshtaghi!
llvm-svn: 50844
2008-05-08 05:58:21 +00:00
Chris Lattner
d330036c06
The awesome GNU "comma elision extension" works with both the standard
...
__VA_ARGS__ syntax as well as with the amazingly awesome GNU "named
variadic macro" extension. Allow it with the GNU syntax as well.
llvm-svn: 50843
2008-05-08 05:10:33 +00:00
Chris Lattner
2b88c1e4c4
Fix rdar://5919567: assertion failure: split didn't occur before erase!
...
llvm-svn: 50839
2008-05-08 03:23:46 +00:00
Devang Patel
ac25fc6f2e
Begin handling union bitfields.
...
Note, this is just beginning.
llvm-svn: 50835
2008-05-07 22:28:29 +00:00
Steve Naroff
30ac2225ee
Fix <rdar://problem/5887874> clang ObjC rewriter: Use a different name for 'offsetof' macro
...
llvm-svn: 50832
2008-05-07 21:23:49 +00:00
Ted Kremenek
bcdb46830b
Added support for "drain".
...
llvm-svn: 50831
2008-05-07 21:17:39 +00:00
Fariborz Jahanian
8983f17ba0
Synthesized getter/setter method declarations need not have
...
an implementation. This fixes couple of failing prperty tests
caused by my previous patch.
llvm-svn: 50830
2008-05-07 20:53:44 +00:00
Ted Kremenek
f958ec50c0
Expand the CF retain checker to allow the Create/Get rule to apply to any
...
function that returns a CFxxxRef, not just functions whose name begins with
CF. This implements <rdar://problem/5917879>.
Added test case for this feature.
Updated calls to CStrInCStrNoCase to swap their arguments, per compatibility
with strcasestr.
llvm-svn: 50829
2008-05-07 20:06:41 +00:00
Ted Kremenek
fcf060fd2f
Flip order of arguments to CStrInStrNoCase.
...
llvm-svn: 50824
2008-05-07 18:57:30 +00:00
Ted Kremenek
b6cbf28d82
Use llvm::CStrInCStrNoCase instead of strcasestr, since the latter is not portable.
...
Correctly check if the result of CStrInCStrNoCase is NULL to generate summaries; before we were inverting the condition.
llvm-svn: 50822
2008-05-07 18:36:45 +00:00
Fariborz Jahanian
ec6e4c8096
This patch introduces declaration of getter methods for ObjC2's
...
properties. Couple of property tests will fail with this patch.
Will fix them next.
llvm-svn: 50818
2008-05-07 17:43:59 +00:00
Ted Kremenek
89bd0fc27d
copy-paste: NS types are not typedefs.
...
llvm-svn: 50817
2008-05-07 17:35:41 +00:00
Steve Naroff
456c0f6738
Fixup InitListExpr::child_begin/end. Thanks to Ted for catching the regression.
...
llvm-svn: 50816
2008-05-07 17:35:03 +00:00
Steve Naroff
6eda39c345
Fix off-by-one error.
...
llvm-svn: 50815
2008-05-07 16:50:14 +00:00
Ted Kremenek
7bf9dc773c
Do not treat **instance** methods "copyWithZone:" and "mutableCopyWithZone:" from NSObject as allocators.
...
llvm-svn: 50802
2008-05-07 05:34:45 +00:00
Douglas Gregor
caa8acebe7
Diagnose attempts to use C++ default arguments outside of a function declaration
...
llvm-svn: 50799
2008-05-07 04:49:29 +00:00
Ted Kremenek
9930bd8c4f
Be less promiscuous with generating summaries for "new", "copy", "create".
...
llvm-svn: 50798
2008-05-07 04:25:59 +00:00
Ted Kremenek
08eb30f193
Added auto-summary generation for createXXX, copyXXX, newXXX methods.
...
llvm-svn: 50795
2008-05-07 03:45:05 +00:00
Steve Naroff
cab93d58c3
Fix <rdar://problem/5908598> clang ObjC rewriter: typo in #pragma at end
...
llvm-svn: 50790
2008-05-07 00:06:16 +00:00
Ted Kremenek
b95635e6ec
Fix a few glitches in scan-build with automatically generating class names from bug types.
...
llvm-svn: 50784
2008-05-06 23:51:45 +00:00
Ted Kremenek
e6d2419351
Improve HTMLDiagnostics by understanding the "Below" hint.
...
llvm-svn: 50783
2008-05-06 23:42:18 +00:00
Steve Naroff
29ce4e5d78
Fix <rdar://problem/5879237> clang objc rewriter: ivars not accessible in structure generated for class
...
llvm-svn: 50781
2008-05-06 23:20:07 +00:00
Fariborz Jahanian
eeb7fae063
Print ObjC methods of ObjC classes.
...
llvm-svn: 50779
2008-05-06 23:14:25 +00:00
Ted Kremenek
aec1811c6c
Don't report leaks for autoreleased objects.
...
llvm-svn: 50777
2008-05-06 23:07:13 +00:00
Steve Naroff
ac81a5aad5
Fix <rdar://problem/5888515> clang ObjC rewriter: Use objc.h for declarations instead of putting them in the preamble?
...
llvm-svn: 50774
2008-05-06 22:45:19 +00:00
Ted Kremenek
aa63ca9272
Added "DisplayHint" to PathDiagnosticPiece to provide a hint for the
...
PathDiagnosticClient of where to display a string (beyond just the SourceLocation).
llvm-svn: 50773
2008-05-06 21:33:07 +00:00
Ted Kremenek
767d0742c7
More comments.
...
"#if 0" out some assumptions when auto-generating method summaries.
llvm-svn: 50772
2008-05-06 21:26:51 +00:00
Devang Patel
243d5cd283
Fix PR2101 - Codegen crash during bitfield initialization.
...
llvm-svn: 50769
2008-05-06 19:57:59 +00:00
Steve Naroff
13e74879b0
Fix <rdar://problem/5881225> clang ObjC Rewriter: Protocol structure defined twice when two interfaces use it in same file
...
llvm-svn: 50767
2008-05-06 18:26:51 +00:00
Fariborz Jahanian
6a70e2019b
Test was accidently nullified in previous check-in.
...
llvm-svn: 50758
2008-05-06 18:14:26 +00:00
Ted Kremenek
10427bdbb9
Experiment with not converting bug names to lower case.
...
llvm-svn: 50753
2008-05-06 18:11:36 +00:00
Ted Kremenek
8bcc1bd3d5
More refactorings in GeneratePathDiagnostic: use ExecutionContinues to display
...
"Execution continues..." message, which does a better job at handling corner cases.
llvm-svn: 50751
2008-05-06 18:11:09 +00:00
Fariborz Jahanian
09367d68ff
Patch to refactor setter/getter names of property attributes into Selector
...
(was IdentifierInfo * before). This will make method declartations whole
lot easier.
llvm-svn: 50747
2008-05-06 18:09:04 +00:00
Ted Kremenek
cb2e636606
Generate "stop" summaries for selectors involving receivers whose type is not NSxxxx.
...
llvm-svn: 50721
2008-05-06 15:44:25 +00:00
Ted Kremenek
68f463b88e
Use strncmp correctly.
...
llvm-svn: 50715
2008-05-06 06:17:42 +00:00
Ted Kremenek
5f478e9a0a
Make string comparison legible and remove buffer overrun introduced by typo.
...
llvm-svn: 50714
2008-05-06 06:09:09 +00:00
Ted Kremenek
2f08fedec1
String comparison cleanups.
...
Added test case.
llvm-svn: 50711
2008-05-06 04:28:05 +00:00
Ted Kremenek
041d02201f
Fix logic error in string processing.
...
llvm-svn: 50710
2008-05-06 04:21:38 +00:00
Ted Kremenek
c9f4948bba
Remove assertion.
...
llvm-svn: 50709
2008-05-06 04:21:10 +00:00
Ted Kremenek
015c3561ad
Use EvalSummary to process message expressions, thereby unifying the checker
...
logic for function calls and message expressions.
Use the following heuristic to infer "allocating" instance methods:
[ClassName classWithXXX] allocates an object
Update testcase to reflect this heuristic.
llvm-svn: 50708
2008-05-06 04:20:12 +00:00
Ted Kremenek
bc51f71c5b
Fixed subtle bug in the an GRAuditor object could mark a node as a sink
...
after it was already added to the destination NodeSet.
llvm-svn: 50701
2008-05-06 03:26:52 +00:00
Ted Kremenek
821537ecdb
Added receiver effects to EvalSummary.
...
llvm-svn: 50700
2008-05-06 02:41:27 +00:00
Ted Kremenek
b0862dca6c
Expand summaries to include "Receiver" effects.
...
llvm-svn: 50697
2008-05-06 02:26:56 +00:00
Chris Lattner
dbcc2ca6b2
simplify some builder calls.
...
llvm-svn: 50694
2008-05-06 00:56:42 +00:00
Chris Lattner
222c6123df
remove a stray printout
...
llvm-svn: 50691
2008-05-06 00:44:00 +00:00
Ted Kremenek
be7c56ed78
Added initialization code to generate initial set of ObjC method summaries (non-instance methods).
...
llvm-svn: 50690
2008-05-06 00:38:54 +00:00
Ted Kremenek
0806f910d4
Added code to generate initial set of summaries for instance methods.
...
llvm-svn: 50689
2008-05-06 00:30:21 +00:00
Steve Naroff
125d73dc84
Several fixes to SemaInit.cpp. It's still not enabled (since it fails a few tests). Expect to enable it very soon.
...
llvm-svn: 50688
2008-05-06 00:23:44 +00:00
Ted Kremenek
3d1e972275
Add summary generation for "initXXX" methods.
...
llvm-svn: 50684
2008-05-05 23:55:01 +00:00
Ted Kremenek
046845e842
Make CF retain diagnostics more succinct.
...
In a leak's "name", indicate GC or non-GC bugs.
llvm-svn: 50680
2008-05-05 23:16:31 +00:00
Ted Kremenek
f15cd14a3d
Emit dead store warnings for ++ and -- operators.
...
llvm-svn: 50679
2008-05-05 23:12:21 +00:00
Chris Lattner
4dd2710222
Fix rdar://5905347 a crash on invalid builtin, due to the
...
params not getting installed for builtins when synthesized.
llvm-svn: 50676
2008-05-05 22:18:14 +00:00
Ted Kremenek
00daccdd2a
Initial work on refactoring the CFRefCount checker so that it is more
...
generic and handles reference counts for NSObjects.
llvm-svn: 50674
2008-05-05 22:11:16 +00:00
Chris Lattner
00e2607de2
Add support for -Wimplicit-function-declaration, rdar://5907433
...
llvm-svn: 50672
2008-05-05 21:18:06 +00:00
Chris Lattner
ca2b318233
Fix typo, improve comment.
...
llvm-svn: 50666
2008-05-05 20:09:27 +00:00
Chris Lattner
db65ff7223
Fix a few more bugs in preprocessor expressions w.r.t. ?:. Now I
...
think it is really right. :) This fixes PR2284.
llvm-svn: 50665
2008-05-05 20:07:41 +00:00
Fariborz Jahanian
8d91686b0d
percolate @optional/@required protocols down to ASTs for
...
properties declared in the protocol.
llvm-svn: 50662
2008-05-05 18:51:55 +00:00
Ted Kremenek
627c3074dd
Improve leak diagnostics to not report a leak on the same line where
...
the object was last used. This can be confusing to users.
For example:
// 'y' is leaked
x = foo(y);
instead:
x = foo(y);
// 'y' is leaked
llvm-svn: 50661
2008-05-05 18:50:19 +00:00
Ted Kremenek
3917b82e85
Improved leak diagnostics.
...
llvm-svn: 50657
2008-05-05 17:53:17 +00:00
Ted Kremenek
875db81301
Minor refactorings/cleanups in CF retain checker and added support for NSMakeCollectable.
...
Added test case for NSMakeCollectable.
llvm-svn: 50653
2008-05-05 16:51:50 +00:00
Ted Kremenek
db04a9e967
When reporting branch conditions that evaluate to an uninitialized value,
...
highlight the most nested subexpression that appears most responsible (giving
the user better diagnostic feedback).
Updated test cases to illustrate this feature.
Implements: <rdar://problem/5880443>
llvm-svn: 50647
2008-05-05 15:56:53 +00:00
Chris Lattner
7f5b4fcafa
Fix a bug from when this was a pointer instead of vector.
...
llvm-svn: 50639
2008-05-05 07:03:40 +00:00
Chris Lattner
3565c8e343
Neil pointed out that clang doesn't generate ranges from diagnostics
...
related to pp-expressions. Doing so is pretty simple and this
patch implements it, yielding nice diagnostics like:
t.c:2:7: error: division by zero in preprocessor expression
#if 1 / (0 + 0)
~ ^ ~~~~~~~
t.c:5:14: error: expected ')' in preprocessor expression
#if (412 + 42
~~~~~~~~^
t.c:5:5: error: to match this '('
#if (412 + 42
^
t.c:10:10: warning: left side of operator converted from negative value to unsigned: -42 to 18446744073709551574
#if (-42 + 0U) / -2
~~~ ^ ~~
t.c:10:16: warning: right side of operator converted from negative value to unsigned: -2 to 18446744073709551614
#if (-42 + 0U) / -2
~~~~~~~~~~ ^ ~~
5 diagnostics generated.
llvm-svn: 50638
2008-05-05 06:45:50 +00:00
Chris Lattner
3c57f7ebab
fix a bug handling right associative operators that Neil noticed, hopefully
...
the final part of PR2279
llvm-svn: 50635
2008-05-05 04:10:51 +00:00
Chris Lattner
de977c0a5c
Fix PR2281: these two warnings should be promoted to error on
...
pedantic error. Perhaps I should add a class of 'extension' that is
'extension that warns by default', which would be cleaner.
llvm-svn: 50633
2008-05-04 23:52:02 +00:00
Chris Lattner
ca671b0e51
||/&& do not do UAC's either. This silences a bogus warning on #if -1 || 4U.
...
llvm-svn: 50632
2008-05-04 23:46:17 +00:00
Chris Lattner
4af72c76dd
Neil points out that commas don't do UACs either.
...
llvm-svn: 50631
2008-05-04 23:38:48 +00:00
Chris Lattner
d89e458ce0
Fix the rest of PR2279:
...
a) correct rejection of ',' in pp expressions.
b) the precedence of ',' was wrong w.r.t. ?:.
Thanks again to Neil for finding these and providing testcases.
llvm-svn: 50625
2008-05-04 18:36:18 +00:00
Chris Lattner
a08f869c22
Fix PR2279 part C: shifts don't perform the UACs, thanks to Neil
...
for pointing this out.
llvm-svn: 50624
2008-05-04 18:25:32 +00:00
Chris Lattner
1e151816b2
use simplified API for making fp constants.
...
llvm-svn: 50623
2008-05-04 18:23:51 +00:00
Chris Lattner
0a9718eab0
fix a nasty bug that Neil identifier in pp-expr parsing (this is PR2279 part D).
...
llvm-svn: 50617
2008-05-04 07:15:21 +00:00
Chris Lattner
7b9293ba20
Simplify FunctionDecl::AddRedeclaration a bit by using std::swap.
...
Fix 'swapping' of attributes to not insert null values into the
DeclAttrs map.
llvm-svn: 50612
2008-05-04 02:29:49 +00:00
Chris Lattner
bc22b5b327
if a decl is both 'static' and weak or static and inline, its linkage
...
type should be internal, not weak/linkonce.
llvm-svn: 50611
2008-05-04 01:44:26 +00:00
Chris Lattner
cfcabaeb7f
add testcase for pr2050 which is now fixed.
...
llvm-svn: 50610
2008-05-04 01:13:36 +00:00
Chris Lattner
c8cb4ca202
improve array type comments.
...
llvm-svn: 50609
2008-05-04 01:11:46 +00:00
Chris Lattner
033352b036
add a testcase
...
llvm-svn: 50608
2008-05-04 00:56:25 +00:00