]>
granicus.if.org Git - clang/log
Chris Lattner [Sun, 3 May 2009 06:59:37 +0000 (06:59 +0000)]
add a flag to output asm constraints so that we efficiently know
if there is an input constraint that is tied to it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70669
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 3 May 2009 06:50:40 +0000 (06:50 +0000)]
avoid a crash when we encounter a implicit cast of the paren expr due to
promotions. This should be fixed by not modeling asm operands (which
require the ()'s according to the grammar) as not being paren exprs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70668
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sun, 3 May 2009 06:08:32 +0000 (06:08 +0000)]
Fix: <rdar://problem/
6850275 > CF objects returned from methods with "new" or "copy" in their name should be treated as owned
For methods that follow the "fundamental rule" and return Core
Foundation objects, treat those objects as owned by the caller.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70665
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sun, 3 May 2009 06:04:26 +0000 (06:04 +0000)]
Fix silly mistake that was breaking tests. Sorry for any inconvenience.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70664
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 3 May 2009 05:59:17 +0000 (05:59 +0000)]
rename some variables, improve comments.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70663
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 3 May 2009 05:55:43 +0000 (05:55 +0000)]
refactor matched operand type checking to happen after the AsmStmt is created,
no functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70662
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sun, 3 May 2009 05:20:50 +0000 (05:20 +0000)]
Convert ArgEffects from an std::vector to an ImmutableMap. This will make it much easier to clean up the summary generation logic with annotations.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70660
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sun, 3 May 2009 05:02:08 +0000 (05:02 +0000)]
Add diagnostic for r70658.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70659
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sun, 3 May 2009 04:46:36 +0000 (04:46 +0000)]
Add Sema support for __builtin_setjmp/__builtin_longjmp. The primary
reason for adding these is to error out in CodeGen when trying to generate
them instead of silently emitting a call to a non-existent function.
(Note that it is not valid to lower these to setjmp/longjmp; in addition
to that lowering being different from the intent, setjmp and longjmp
require a larger buffer.)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70658
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sun, 3 May 2009 04:42:10 +0000 (04:42 +0000)]
Rename isTrackedObjectType() -> isTrackedObjCObjectType().
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70657
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Sun, 3 May 2009 04:33:32 +0000 (04:33 +0000)]
When a fix-it hint would span multiple lines, don't print it; half a
fix-it hint is much worse than no fix-it hint. (Fixes PR4084).
When we need to truncate a source line to fix in the terminal, make
sure to take the width of the fix-it information into account, too.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70656
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Sun, 3 May 2009 04:12:51 +0000 (04:12 +0000)]
When we truncate a source line to fit it within the terminal width,
show an ellipsis where we have removed text. An example:
/Users/dgregor/Projects/llvm/tools/clang/test/Misc/message-length.c:18:120:
warning:
comparison of distinct pointer types ('int *' and 'float *')
...a_func_to_call(ip == FloatPointer, ip[ALongIndexName], ...
~~ ^ ~~~~~~~~~~~~
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70655
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Sun, 3 May 2009 03:52:38 +0000 (03:52 +0000)]
Respect the COLUMNS environment variable for word-wrapping (so we get
word-wrapping by default in Emacs; yay!). Thanks, Daniel.
Use LLVM's System layer rather than calling isatty() directly.
Fix a thinko in printing the indentation string that was causing some
weird output.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70654
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 3 May 2009 01:08:28 +0000 (01:08 +0000)]
Fix invalid error about duplicate declaration of padding bit field in
an interface.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70652
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Sun, 3 May 2009 00:27:40 +0000 (00:27 +0000)]
region store: make Retrieve() can retrieve embedded array correctly. Also
simplify the retrieve logic.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70651
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 2 May 2009 23:50:24 +0000 (23:50 +0000)]
Remove ccc from the makefile as well.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70650
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 2 May 2009 22:13:56 +0000 (22:13 +0000)]
ccc is dead.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70649
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 2 May 2009 22:09:19 +0000 (22:09 +0000)]
Driver: Treat -m32 and -m64 as "driver-only" arguments.
- In particular, don't forward them to gcc; these participate in the
selection of the tool chain, which should know how to talk to gcc
and be fixed if it doesn't.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70648
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 2 May 2009 21:41:52 +0000 (21:41 +0000)]
Driver: When using the generic gcc tool, pass -m32 or -m64 if we
recognize the architecture.
- This is an attempt to force gcc to the write target.
- PR4094.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70647
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 2 May 2009 20:14:53 +0000 (20:14 +0000)]
Driver: Generate an error when trying to pass an LLVM bc input to a
non-Darwin linker (sorry Gold + LTO-plugin users).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70641
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 2 May 2009 20:08:07 +0000 (20:08 +0000)]
Use clang to find clang-cc, if it isn't in path.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70640
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 May 2009 19:34:21 +0000 (19:34 +0000)]
when creating custom warning diagnostics, do not attempt to map
them with -Werror. Custom diags cannot be mapped, and this makes
-Werror cause a determinstic crash for the checker and other
clients of the custom diagnostics machinery. rdar://
6816191
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70639
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 2 May 2009 19:05:19 +0000 (19:05 +0000)]
retain/release checker: Enhance leak description to say that the bug
occurs in GC mode.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70638
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 2 May 2009 18:36:10 +0000 (18:36 +0000)]
Fix a thinko and a test.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70637
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 2 May 2009 18:28:39 +0000 (18:28 +0000)]
DragonFly ToolChain definition for driver.
- Patch by Alex Hornung!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70635
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sat, 2 May 2009 17:45:47 +0000 (17:45 +0000)]
Downgrade the invalid offsetof error to a warning.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70634
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Sat, 2 May 2009 02:18:30 +0000 (02:18 +0000)]
When determining whether an expression refers to a bit-field, look
into the left-hand side of an assignment expression. This completes
most of PR3500; the only remaining part is to deal with the
GCC-specific implementation-defined behavior for "unsigned long" (and
other) bit-fields.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70623
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 2 May 2009 01:49:13 +0000 (01:49 +0000)]
Add CFG support for @synchronized. This fixes <rdar://problem/
6848820 >.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70620
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 May 2009 01:13:16 +0000 (01:13 +0000)]
When creating a dwarf record type for an objc interface, make sure to propagate
the runtime version number onto it, so that the debugger knows it's an objc
interface, not a C struct. rdar://
6848435
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70618
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 May 2009 01:04:13 +0000 (01:04 +0000)]
capture whether optimizations are enabled or not in debug info
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70617
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 May 2009 01:00:04 +0000 (01:00 +0000)]
encode the version of the objc runtime into the dwarf compile unit. rdar://
6848435 ,
several other fixes coming.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70616
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 2 May 2009 00:42:33 +0000 (00:42 +0000)]
Update checker build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70615
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 2 May 2009 00:41:02 +0000 (00:41 +0000)]
Add another null pointer check test case.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70614
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Sat, 2 May 2009 00:36:19 +0000 (00:36 +0000)]
Fix bitfield promotions in several more cases. We don't seem to work hard enough at determining whether an expression is a bitfield or not, yet.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70613
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 2 May 2009 00:13:27 +0000 (00:13 +0000)]
Fix crasher in CFG construction when not properly handling ASTs that contain
expressions not yet properly handled by the CFGBuilder. This failure resulted in
a null CFGBlock* being used in rare cases (causing a crash).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70612
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Sat, 2 May 2009 00:03:46 +0000 (00:03 +0000)]
When -fmessage-length=N is not specified, and if standard error is
going to a terminal, word-wrap to the length of the terminal.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70611
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 1 May 2009 23:47:59 +0000 (23:47 +0000)]
explicitly know that the alignment of Type* is 3 bits.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70602
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Fri, 1 May 2009 23:41:47 +0000 (23:41 +0000)]
Add Sema checking for __block on vm declarations. Radar
6441502
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70601
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 1 May 2009 23:35:18 +0000 (23:35 +0000)]
Add another test case found due to an analyzer regression.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70600
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 1 May 2009 23:34:58 +0000 (23:34 +0000)]
Make install target actually work, dependencies FTW.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70599
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 1 May 2009 23:32:58 +0000 (23:32 +0000)]
When printing a source line as part of a diagnostic, the source line
might be wider than we're supposed to print. In this case, we try to
select the "important" subregion of the source line, which contains
everything that we want to show (e.g., with underlining and the caret
itself) and tries to also contain some of the context.
From the fantastically long line in the test case, we get an error
message that slices down to this:
message-length.c:18:120: warning: comparison of distinct pointer types
('int *' and 'float *')
a_func_to_call(ip == FloatPointer, ip[ALongIndexName],
~~ ^ ~~~~~~~~~~~~
There are a bunch of gee-it-sounds-good heuristics in here, which seem
to do well on the various simple tests I've thrown at it. However,
we're going to need to look at a bunch more diagnostics to tweak these
heuristics.
This is the second part of <rdar://problem/
6711348 >. Almost there!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70597
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 1 May 2009 23:20:30 +0000 (23:20 +0000)]
It's an error to call offsetof on a non-POD type.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70595
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 1 May 2009 23:11:42 +0000 (23:11 +0000)]
Add ONLY_MAN_DOCS variable to only install the man page, not the html
and ps documentation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70589
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 1 May 2009 22:21:22 +0000 (22:21 +0000)]
Get rid of CXXDestroyExpr.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70586
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 1 May 2009 22:18:46 +0000 (22:18 +0000)]
Add a new BFS GRWorkList and make it the default worklist model for
GRCoreEngine. This tends to result in shorter paths for pathological cases.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70585
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 1 May 2009 22:18:43 +0000 (22:18 +0000)]
Rename CXXExprWithCleanup to CXXExprWithTemporaries.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70584
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 1 May 2009 21:55:16 +0000 (21:55 +0000)]
We can now call member functions where the base is a pointer.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70579
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 1 May 2009 21:53:04 +0000 (21:53 +0000)]
Implement -fmessage-length=N, which word-wraps diagnostics to N columns.
Also, put a line of whitespace between the diagnostic and the source
code/caret line when the start of the actual source code text lines up
(or nearly lines up) with the most recent line of the diagnostic. For
example, here it's okay for the last line of the diagnostic to be
(vertically) next to the source line, because there is horizontal
whitespace to separate them:
decl-expr-ambiguity.cpp:12:16: error: function-style cast to a builtin
type can only take one argument
typeof(int)(a,5)<<a;
However, here is a case where we need the vertical separation (since
there is no horizontal separation):
message-length.c:10:46: warning: incompatible pointer types initializing 'void
(int, float, char, float)', expected 'int (*)(int, float, short,
float)'
int (*fp1)(int, float, short, float) = f;
This is part one of <rdar://problem/
6711348 >.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70578
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 1 May 2009 20:41:21 +0000 (20:41 +0000)]
Implement bit-field promotion rules for C99. Fixes PR3500.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70571
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Fri, 1 May 2009 20:41:13 +0000 (20:41 +0000)]
Add support for -Wno-format-zero-length.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70570
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 1 May 2009 20:07:12 +0000 (20:07 +0000)]
Check for method type conflict between declaration in
class/protocol and implementation which could be
an imm. implementation or down in the inheritance
hierarchy.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70568
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 1 May 2009 19:49:17 +0000 (19:49 +0000)]
Replace more release+static_cast with takeAs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70567
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 1 May 2009 19:30:39 +0000 (19:30 +0000)]
Replace a bunch of static_cast + release with takeAs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70566
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 1 May 2009 19:22:20 +0000 (19:22 +0000)]
StoreManager::CastRegion:
- Don't layer TypedViewRegions on top of any region except
SymbolicRegions and AllocaRegions. This follows from my offline
discussion within Zhongxing about how TypedViewRegions really only
represent memory getting re-appropriated for a new purpose.
Fallout from this change:
- Move test case from xfail_rdar_6440393.m to misc-ps-64.m
(it now passes).
- test/Analysis/fields.c now fails for region store (crash).
Marking XFAIL.
- test/Analysis/rdar-
6441136 -region.c now fails (only runs with region store).
Marking XFAIL.
Diagnosis: The analyzer now correctly identifies an early out-of-bounds memory
access then the one flagged:
rdar-
6541136 -region.c:17:3: warning: Load or store into an out-of-bound memory position.
*p = 1;
^~
Changing the line:
char *p = (void*) &wonky[1];
to
char *p = (void*) &wonky[0];
(which should delay the buffer overrun) causes region store to crash, probably
because it expects a TypedViewRegion.
- test/Analysis/casts.c (region store) now fails (crash).
Marking XFAIL.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70565
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 1 May 2009 19:04:28 +0000 (19:04 +0000)]
Basic Store: Always convert a non::LocAsInteger to a Loc when storing to a pointer.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70564
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 1 May 2009 18:43:00 +0000 (18:43 +0000)]
Update CMake file.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70563
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 1 May 2009 18:34:30 +0000 (18:34 +0000)]
Get rid of the implicit deref call when calling member functions where the base is a pointer.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70562
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 1 May 2009 17:37:31 +0000 (17:37 +0000)]
Add function prototype for OSAtomicCompareAndSwap32Barrier.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70559
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 1 May 2009 17:29:33 +0000 (17:29 +0000)]
Fix run line in failing test case (it was missing the '%s' for the
file name, thus causing the test case to hang).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70558
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 1 May 2009 16:33:20 +0000 (16:33 +0000)]
teach -parse-noop about int128_t and friends.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70547
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 1 May 2009 16:08:09 +0000 (16:08 +0000)]
BugReporter (extensive diagnostics): introduce the notion of a "dead"
location context. This allows us to postpone the decision of whether
or not a context should add a control-flow piece to the diagnostics
when inspecting its subexpressions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70545
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 1 May 2009 15:47:09 +0000 (15:47 +0000)]
Finish a thought in CheckVariableDeclaration's comment. No functionality change
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70544
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 1 May 2009 15:45:53 +0000 (15:45 +0000)]
Add testcase that illustrates the problem from r69699 regarding tentative definitions of statics
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70543
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 1 May 2009 15:19:33 +0000 (15:19 +0000)]
Remove #if 0'ed code.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70542
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 1 May 2009 04:13:51 +0000 (04:13 +0000)]
Add failing static analyzer case (this crashes).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70532
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Fri, 1 May 2009 02:23:58 +0000 (02:23 +0000)]
PR4013 and PR4105: pointer-like types can only be cast to/from integers
and other pointer-like types.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70531
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 1 May 2009 01:42:13 +0000 (01:42 +0000)]
C/ObjC work well enough with clang for them not to be a gcc strength anymore.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70528
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 1 May 2009 01:40:42 +0000 (01:40 +0000)]
add word
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70527
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 1 May 2009 01:40:17 +0000 (01:40 +0000)]
C/ObjC work well enough to claim support for them now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70526
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Fri, 1 May 2009 01:31:57 +0000 (01:31 +0000)]
Don't assert when we think we need copy/dispose, but don't need them.
Radar
6838889
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70525
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Fri, 1 May 2009 00:16:04 +0000 (00:16 +0000)]
Don't use indirect memory destinations for inline asm. Fixes
6841383 .
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70523
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Thu, 30 Apr 2009 23:18:11 +0000 (23:18 +0000)]
C++ destructors can have a single unnamed void parameter. Fixes <rdar://problem/
6841210 >.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70519
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Thu, 30 Apr 2009 23:08:58 +0000 (23:08 +0000)]
Remove a warning when this file is compiled optimized.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70518
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Thu, 30 Apr 2009 22:41:11 +0000 (22:41 +0000)]
Rework the way we handle constructor decls to be less hacky and fix PR3948 completely.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70516
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Thu, 30 Apr 2009 21:39:24 +0000 (21:39 +0000)]
Use of super class ivar to synthesize property is back to being error.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70514
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 30 Apr 2009 20:00:31 +0000 (20:00 +0000)]
retain/release checker: Hook up attributes 'objc_ownership_retain' and
'objc_ownership_release' to the effects on receivers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70507
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Thu, 30 Apr 2009 19:20:55 +0000 (19:20 +0000)]
Make a home for exception specs in the AST. Now Sema can hook them up.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70506
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 30 Apr 2009 19:18:03 +0000 (19:18 +0000)]
Allow attributes 'objc_ownership_retain' and 'objc_ownership_release' to be
applied to ObjCMethodDecls, not just parameters. This allows one to specific
side-effects on the receiver of a message expression. No checker support yet.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70505
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 30 Apr 2009 18:41:06 +0000 (18:41 +0000)]
Hook up Sema support for attributes on Objective-C method declarations that
appear between the return type and the selector. This is a separate code path
from regular attribute processing, as we only want to (a) accept only a specific
set of attributes in this place and (b) want to distinguish to clients the
context in which an attribute was added to an ObjCMethodDecl.
Currently, the attribute 'objc_ownership_returns' is the only attribute that
uses this new feature. Shortly I will add a warning for 'objc_ownership_returns'
to be placed at the end of a method declaration.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70504
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 30 Apr 2009 17:55:29 +0000 (17:55 +0000)]
Add parsing support in an Objective-C method declaration for attributes between
the return type and selector. Haven't hooked this up to Sema yet.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70501
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Thu, 30 Apr 2009 17:53:16 +0000 (17:53 +0000)]
Name the "return-type" DiagGroup and reference it in a few places.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70500
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Thu, 30 Apr 2009 17:32:17 +0000 (17:32 +0000)]
Properly compute the alignment of typedefs that make use of the
"aligned" attribute. Previously, we were skipping over these
attributes when we jumped directly to the canonical type. Now,
ASTContext::getTypeInfo walks through typedefs and other
"non-canonical" types manually, looking for "aligned" attributes on
typedefs.
As part of this change, I moved the GNU-specific logic (such as
determining the alignment of void or of a function pointer) out of the
expression evaluator and into ASTContext::getTypeInfo.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70497
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Thu, 30 Apr 2009 16:31:11 +0000 (16:31 +0000)]
API for message dispatch of methods returning floats
to match gcc's closely.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70493
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Thu, 30 Apr 2009 16:01:26 +0000 (16:01 +0000)]
Warn about invalid return statements by default.
This fixes <rdar://problem/
6839489 > 10A345: Clang does not warm about mismatched returns (void return from a bool function)
Will implement -Wreturn-type, -Wno-return-type in another commit.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70492
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 30 Apr 2009 15:15:37 +0000 (15:15 +0000)]
Update checker build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70489
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Thu, 30 Apr 2009 07:03:22 +0000 (07:03 +0000)]
Fix for PR4108: be a bit looser with the casts that we accept in
constant initializers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70483
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 30 Apr 2009 06:36:43 +0000 (06:36 +0000)]
accept and ignore two new warning specifiers. -Wno-discard-qual seems easy
to hook up if someone was interested.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70482
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 30 Apr 2009 06:22:07 +0000 (06:22 +0000)]
fix i128 to return in 2 64-bit registers (rax/rdx on x86-64)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70481
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 30 Apr 2009 06:18:40 +0000 (06:18 +0000)]
only support int128_t on 64-bit and larger targets. 32-bit targets don't
have support for __divti3 and friends.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70480
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 30 Apr 2009 05:51:50 +0000 (05:51 +0000)]
Handle case in EvalReturn where we cache out in the ExplodedGraph.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70475
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 30 Apr 2009 05:47:23 +0000 (05:47 +0000)]
retain/release checker: Use the ObjCMethodDecl in the @implementation if no
matching ObjCMethodDecl exists in the @interface.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70474
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 30 Apr 2009 05:41:14 +0000 (05:41 +0000)]
retain/release checker: Resolve method decl in @interface after getting the
ObjCInterfaceDecl, not before.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70473
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 30 Apr 2009 02:55:13 +0000 (02:55 +0000)]
int128_t is apparently 128-bit aligned on all 64-bit targets, and
not supported on 32-bit targets, so we can define it to be 128-bit
aligned there too :)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70465
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 30 Apr 2009 02:43:43 +0000 (02:43 +0000)]
initial support for __[u]int128_t, which should be basically
compatible with VC++ and GCC. The codegen/mangling angle hasn't
been fully ironed out yet. Note that we accept int128_t even in
32-bit mode, unlike gcc.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70464
91177308 -0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 30 Apr 2009 00:55:13 +0000 (00:55 +0000)]
Remove two unused options.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70457
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Thu, 30 Apr 2009 00:19:40 +0000 (00:19 +0000)]
Sema checking for incorrect placement of __block. Radar
6441502
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70452
91177308 -0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 29 Apr 2009 23:53:23 +0000 (23:53 +0000)]
Use the new code gen optimization enum instead of passing in the optimization
level. This is more expressive.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70451
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 29 Apr 2009 23:37:31 +0000 (23:37 +0000)]
Make DISABLE_SMART_POINTERS work, again
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70443
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Wed, 29 Apr 2009 23:31:56 +0000 (23:31 +0000)]
Change to warning when property uses an ivar in super class
in an @synthesize diective, as it breaks few projects.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70441
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Wed, 29 Apr 2009 23:19:39 +0000 (23:19 +0000)]
Just because a declaration has the same name as its containing class doesn't mean that it's a constructor. Fixes rdar://problem/
6815988 .
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70436
91177308 -0d34-0410-b5e6-
96231b3b80d8