]>
granicus.if.org Git - clang/log
Eli Friedman [Tue, 27 May 2008 04:22:24 +0000 (04:22 +0000)]
Stop leaking the target data. (Leak found with valgrind.)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51579
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 27 May 2008 04:20:05 +0000 (04:20 +0000)]
Generalize the float type generation code, and specifically fix the
codegen of X86 long double.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51578
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 27 May 2008 03:33:27 +0000 (03:33 +0000)]
Implementation of gcc mode attribute; this is significant because
it fixes PR2204. Not too much to say about the implementation; it works
in a similar way to the vector size attribute.
At some point, we need to modify the targets to provide information
about the appropriate types.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51577
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 27 May 2008 03:14:44 +0000 (03:14 +0000)]
Rewrite struct/union layout. This is mostly cleanup; this might also fix
a few bugs, but I don't know of any in particular. This has good effects
besides cleanup, though: it also should make it easier to implement the
aligned and packed attributes, and also target-specific struct layouts,
because the code won't have to be duplicated in codegen.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51576
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 27 May 2008 03:08:09 +0000 (03:08 +0000)]
Stop leaking the TUDecl.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51575
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 27 May 2008 02:01:50 +0000 (02:01 +0000)]
Change diagnostic per suggestion, to make it a bit clearer what is
happening.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51574
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 26 May 2008 12:59:39 +0000 (12:59 +0000)]
Emit memmove, not memcpy, for structure copies; this is unfortunately
required for correctness in cases of copying a struct to itself or to
an overlapping struct (itself for cases like *a = *a, and overlapping
is possible with unions).
Hopefully, this won't end up being a perf issue; LLVM *should* be able
to optimize memmove to memcpy in a lot of cases, and for small copies
the generated code *should* be mostly comparable. (In reality, LLVM
is currently horrible at optimizing memmove, but that's a bug, not a
fundamental issue.)
gcc currently generates wrong code; that's
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32667.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51566
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sun, 25 May 2008 14:13:57 +0000 (14:13 +0000)]
Fix for PR2001. I'm not really fond of it, but it is correct (unless
someone tries to make a bitfield volatile?).
Not sure how to write a test; any suggestions?
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51558
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sun, 25 May 2008 14:03:31 +0000 (14:03 +0000)]
Count the number of initializable members correctly in structs/unions
with unnamed members.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51557
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sun, 25 May 2008 13:49:22 +0000 (13:49 +0000)]
Diagnose implicit init list for empty aggregate, like struct {}. Fixes
PR2151 (by not creating the empty implicit init list).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51556
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sun, 25 May 2008 13:22:35 +0000 (13:22 +0000)]
Move the error checking for variable-sized objects so we don't
double-report errors; fixes PR2362.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51555
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sun, 25 May 2008 05:26:09 +0000 (05:26 +0000)]
Make sure to define __sparc__ on Solaris; this should "fix"
test/Codegen/mandel.c on Solaris. :-)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51554
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sanjiv Gupta [Sun, 25 May 2008 05:15:42 +0000 (05:15 +0000)]
Generate subprogram debug info with -g.
Also take care of freeing memory at the right places.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51553
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sun, 25 May 2008 04:43:38 +0000 (04:43 +0000)]
Fix this test on non-X86 platforms.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51552
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sun, 25 May 2008 04:34:57 +0000 (04:34 +0000)]
Always initialize NEXT_CATCH; fixes a Valgrind uninitialized read error
(originally reported in PR1682).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51551
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 24 May 2008 16:16:30 +0000 (16:16 +0000)]
Fix variable misspelling.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51548
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 24 May 2008 16:14:34 +0000 (16:14 +0000)]
Don't use inferlanguage to override the default language for all files.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51547
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 24 May 2008 16:09:00 +0000 (16:09 +0000)]
Don't analyze .o files.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51546
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 24 May 2008 15:58:54 +0000 (15:58 +0000)]
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"
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51545
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 24 May 2008 15:09:56 +0000 (15:09 +0000)]
Call the correct destructor.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51544
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Sat, 24 May 2008 00:16:40 +0000 (00:16 +0000)]
This fixes a VC++ build failure.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51528
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 May 2008 23:29:33 +0000 (23:29 +0000)]
fix a nasty off-by-one error.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51519
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 May 2008 23:10:58 +0000 (23:10 +0000)]
add some assertions to catch bad things before they die
somewhere deep in rewrite rope.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51515
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 May 2008 23:06:56 +0000 (23:06 +0000)]
fix an inconsistency computing offsets that caused a crash on rewrite-nest.m
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51514
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 23 May 2008 22:18:16 +0000 (22:18 +0000)]
Disable the use of PCH files when using xcodebuild.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51509
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Fri, 23 May 2008 22:01:24 +0000 (22:01 +0000)]
Minor tweak to -ast-dump for ivars.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51508
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Fri, 23 May 2008 22:00:37 +0000 (22:00 +0000)]
Fix range info for explicit ivar refs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51507
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 23 May 2008 21:28:18 +0000 (21:28 +0000)]
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)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51502
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Fri, 23 May 2008 20:57:38 +0000 (20:57 +0000)]
Remove a diagnostic (temporary hack that will be removed next week).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51498
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 23 May 2008 20:40:52 +0000 (20:40 +0000)]
minor changes, collect the range of an expr before rewriting the subexprs
no functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51497
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Fri, 23 May 2008 18:50:58 +0000 (18:50 +0000)]
Make sure method definitions get output with -ast-dump.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51494
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 23 May 2008 18:17:05 +0000 (18:17 +0000)]
When known, include the analyzer build in the output of scan-build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51492
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 23 May 2008 17:25:17 +0000 (17:25 +0000)]
More test cases for retain/release checker. These cases handle not flagging leaks for static variables.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51486
91177308 -0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Fri, 23 May 2008 11:19:39 +0000 (11:19 +0000)]
fix typo
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51479
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 23 May 2008 02:53:24 +0000 (02:53 +0000)]
Unbreak build. Forget to check in this header file change with a previous commit.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51470
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 23 May 2008 01:40:41 +0000 (01:40 +0000)]
Fix typo.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51466
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Fri, 23 May 2008 00:59:14 +0000 (00:59 +0000)]
Tweak AST dumper for ObjC ivars.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51463
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 22 May 2008 23:46:11 +0000 (23:46 +0000)]
Additional retain/release checker regression tests.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51454
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 22 May 2008 23:45:19 +0000 (23:45 +0000)]
Prototyped support in the BugReporter to emit diagnostics of the form "p now aliases q".
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51453
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Thu, 22 May 2008 23:24:08 +0000 (23:24 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51450
91177308 -0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 22 May 2008 22:12:56 +0000 (22:12 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51446
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 22 May 2008 17:31:13 +0000 (17:31 +0000)]
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 >
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51433
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 22 May 2008 16:28:24 +0000 (16:28 +0000)]
Don't use ostringstream (pulling in <sstream>) when creating the dead store diagnostic (simply not needed).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51432
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 22 May 2008 15:26:22 +0000 (15:26 +0000)]
Update driver include paths to work on darwin10.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51431
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 22 May 2008 08:54:03 +0000 (08:54 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51424
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 22 May 2008 01:40:10 +0000 (01:40 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51404
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 22 May 2008 01:22:33 +0000 (01:22 +0000)]
Minor refactoring: compute the return value separately from emitting the
ret.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51403
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 22 May 2008 01:16:59 +0000 (01:16 +0000)]
Make CurFuncDecl more specific; I have some code I'm going to land in a
bit that wants to use CurFuncDecl as a FunctionDecl.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51402
91177308 -0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 22 May 2008 00:50:06 +0000 (00:50 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51398
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 21 May 2008 22:59:16 +0000 (22:59 +0000)]
Improve dead stores diagnostics to include the variable name.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51395
91177308 -0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 21 May 2008 20:26:42 +0000 (20:26 +0000)]
Remove the unneeded #include of VMCore header "llvm/DerivedTypes.h".
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51392
91177308 -0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 21 May 2008 20:19:16 +0000 (20:19 +0000)]
Explicitly #include Support/Streams.h when using llvm::cout and friends.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51391
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 21 May 2008 16:38:54 +0000 (16:38 +0000)]
Add Destroy method to Types, making there destruction more harmonious with
the destruction of Decls and Stmts.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51385
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 21 May 2008 16:00:02 +0000 (16:00 +0000)]
Fix potential double-free.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51381
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Wed, 21 May 2008 15:59:22 +0000 (15:59 +0000)]
Fixup ASTContext::PrintStats()...it was causing several test failures.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51380
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 21 May 2008 15:53:55 +0000 (15:53 +0000)]
When destroying DeclStmts, also destroy the associated Decl (reclaim its memory).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51379
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 21 May 2008 15:48:33 +0000 (15:48 +0000)]
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!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51377
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Wed, 21 May 2008 13:24:44 +0000 (13:24 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51371
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Wed, 21 May 2008 13:21:01 +0000 (13:21 +0000)]
A small testcase; no patch, since it was a bug in a patch I never
committed.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51370
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Wed, 21 May 2008 05:37:55 +0000 (05:37 +0000)]
Fix this test so that it's valid; the point is to test for the crash,
not the missing diagnostic.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51365
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Wed, 21 May 2008 05:33:10 +0000 (05:33 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51364
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Wed, 21 May 2008 05:06:46 +0000 (05:06 +0000)]
PR2347: Fix crash iterating over VLAs; this started triggering because
we now iterate over the whole AST when we destroy it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51363
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Wed, 21 May 2008 05:01:55 +0000 (05:01 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51362
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Wed, 21 May 2008 03:39:11 +0000 (03:39 +0000)]
Fix a couple of bugs found by Neil Booth in the const-ness checking.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51361
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Wed, 21 May 2008 03:11:31 +0000 (03:11 +0000)]
Protect iso646.h from C++ (although I can't imagine why someone would
need it...). Patch by Mike Stump.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51360
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Tue, 20 May 2008 20:39:37 +0000 (20:39 +0000)]
Add SemaInit.cpp to VC++ proj.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51330
91177308 -0d34-0410-b5e6-
96231b3b80d8
Nuno Lopes [Tue, 20 May 2008 18:03:51 +0000 (18:03 +0000)]
initialize variable and fix a bunch of test failures
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51326
91177308 -0d34-0410-b5e6-
96231b3b80d8
Nuno Lopes [Tue, 20 May 2008 17:33:56 +0000 (17:33 +0000)]
fix warning with gcc 4.1 (ptr to bool convertion)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51324
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 20 May 2008 15:17:39 +0000 (15:17 +0000)]
Remove hacks from ASTContext now that alignment gets reported correctly.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51322
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 20 May 2008 14:27:34 +0000 (14:27 +0000)]
Missed an include.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51321
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 20 May 2008 14:25:01 +0000 (14:25 +0000)]
Minor correction for PPC targets.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51320
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 20 May 2008 14:21:01 +0000 (14:21 +0000)]
Some small changes to make the target info a bit more accurate.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51319
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 20 May 2008 13:48:25 +0000 (13:48 +0000)]
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).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51318
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 20 May 2008 13:34:26 +0000 (13:34 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51317
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 20 May 2008 12:55:29 +0000 (12:55 +0000)]
Test from PR2332; bug already fixed by r51311.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51316
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 20 May 2008 09:21:07 +0000 (09:21 +0000)]
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.)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51312
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 20 May 2008 09:10:20 +0000 (09:10 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51311
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 20 May 2008 09:04:19 +0000 (09:04 +0000)]
Fix test (it was incorrectly succeeding).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51310
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 20 May 2008 08:59:34 +0000 (08:59 +0000)]
Add codegen support for stack address intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51309
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 20 May 2008 08:27:04 +0000 (08:27 +0000)]
Fix typo in test.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51308
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 20 May 2008 08:23:37 +0000 (08:23 +0000)]
Add __builtin_frame_address and __builtin_return_address gcc builtins to
Sema. No codegen yet.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51307
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 20 May 2008 07:56:31 +0000 (07:56 +0000)]
Implement codegen for comma operator for structs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51304
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 20 May 2008 05:25:56 +0000 (05:25 +0000)]
Be a bit more defensive in SemaInit.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51301
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 20 May 2008 05:22:08 +0000 (05:22 +0000)]
Add some more checking for compound literals.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51300
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 20 May 2008 04:49:55 +0000 (04:49 +0000)]
Reclaim memory from chains of ScopedDecls, and reclaim memory for the initializers of EnumConstantDecls.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51299
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 20 May 2008 04:10:52 +0000 (04:10 +0000)]
Delete AST nodes, not just Decls.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51298
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 20 May 2008 03:56:00 +0000 (03:56 +0000)]
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).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51297
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 20 May 2008 03:33:58 +0000 (03:33 +0000)]
When serializing FunctionDecl, serialize out a reference to the previous declaration.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51294
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 20 May 2008 00:47:23 +0000 (00:47 +0000)]
Remove unnecessary #include (introduced by a recent patch of mine).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51288
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 20 May 2008 00:43:19 +0000 (00:43 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51286
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 20 May 2008 00:11:07 +0000 (00:11 +0000)]
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).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51285
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Tue, 20 May 2008 00:04:21 +0000 (00:04 +0000)]
Remove code that shouldn't have any effect anymore.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51284
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 19 May 2008 23:27:48 +0000 (23:27 +0000)]
Implement CodeGen for __builtin_memcpy.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51282
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 19 May 2008 23:19:04 +0000 (23:19 +0000)]
Updated Xcode project.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51281
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 19 May 2008 22:02:12 +0000 (22:02 +0000)]
Added Stmt::DestroyChildren, which will be used by the dstors of the subclasses of Stmt to recursively delete their child AST nodes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51278
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 19 May 2008 21:24:43 +0000 (21:24 +0000)]
Make the unused expression warning a bit less aggressive (found in PHP
code).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51276
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 19 May 2008 20:29:35 +0000 (20:29 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51273
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 19 May 2008 20:20:43 +0000 (20:20 +0000)]
Adjust warning so that it doesn't fire when there is an error.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51269
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 19 May 2008 20:17:34 +0000 (20:17 +0000)]
Remove illegal test.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51267
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 19 May 2008 20:12:18 +0000 (20:12 +0000)]
Add errors for some illegal constructs (specifically, "int a = {{3}};"
and "int a = {};"). I'll adjust the tests in a bit.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51265
91177308 -0d34-0410-b5e6-
96231b3b80d8