]> granicus.if.org Git - clang/log
clang
15 years agoadd a flag to output asm constraints so that we efficiently know
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

15 years agoavoid a crash when we encounter a implicit cast of the paren expr due to
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

15 years agoFix: <rdar://problem/6850275> CF objects returned from methods with "new" or "copy...
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

15 years agoFix silly mistake that was breaking tests. Sorry for any inconvenience.
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

15 years agorename some variables, improve comments.
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

15 years agorefactor matched operand type checking to happen after the AsmStmt is created,
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

15 years agoConvert ArgEffects from an std::vector to an ImmutableMap. This will make it much...
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

15 years agoAdd diagnostic for r70658.
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

15 years agoAdd Sema support for __builtin_setjmp/__builtin_longjmp. The primary
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

15 years agoRename isTrackedObjectType() -> isTrackedObjCObjectType().
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

15 years agoWhen a fix-it hint would span multiple lines, don't print it; half a
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

15 years agoWhen we truncate a source line to fit it within the terminal width,
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

15 years agoRespect the COLUMNS environment variable for word-wrapping (so we get
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

15 years agoFix invalid error about duplicate declaration of padding bit field in
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

15 years agoregion store: make Retrieve() can retrieve embedded array correctly. Also
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

15 years agoRemove ccc from the makefile as well.
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

15 years agoccc is dead.
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

15 years agoDriver: Treat -m32 and -m64 as "driver-only" arguments.
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

15 years agoDriver: When using the generic gcc tool, pass -m32 or -m64 if we
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

15 years agoDriver: Generate an error when trying to pass an LLVM bc input to a
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

15 years agoUse clang to find clang-cc, if it isn't in path.
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

15 years agowhen creating custom warning diagnostics, do not attempt to map
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

15 years agoretain/release checker: Enhance leak description to say that the bug
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

15 years agoFix a thinko and a test.
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

15 years agoDragonFly ToolChain definition for driver.
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

15 years agoDowngrade the invalid offsetof error to a warning.
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

15 years agoWhen determining whether an expression refers to a bit-field, look
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

15 years agoAdd CFG support for @synchronized. This fixes <rdar://problem/6848820>.
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

15 years agoWhen creating a dwarf record type for an objc interface, make sure to propagate
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

15 years agocapture whether optimizations are enabled or not in debug info
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

15 years agoencode the version of the objc runtime into the dwarf compile unit. rdar://6848435,
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

15 years agoUpdate checker build.
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

15 years agoAdd another null pointer check test case.
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

15 years agoFix bitfield promotions in several more cases. We don't seem to work hard enough...
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

15 years agoFix crasher in CFG construction when not properly handling ASTs that contain
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

15 years agoWhen -fmessage-length=N is not specified, and if standard error is
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

15 years agoexplicitly know that the alignment of Type* is 3 bits.
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

15 years agoAdd Sema checking for __block on vm declarations. Radar 6441502
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

15 years agoAdd another test case found due to an analyzer regression.
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

15 years agoMake install target actually work, dependencies FTW.
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

15 years agoWhen printing a source line as part of a diagnostic, the source line
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

15 years agoIt's an error to call offsetof on a non-POD type.
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

15 years agoAdd ONLY_MAN_DOCS variable to only install the man page, not the html
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

15 years agoGet rid of CXXDestroyExpr.
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

15 years agoAdd a new BFS GRWorkList and make it the default worklist model for
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

15 years agoRename CXXExprWithCleanup to CXXExprWithTemporaries.
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

15 years agoWe can now call member functions where the base is a pointer.
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

15 years agoImplement -fmessage-length=N, which word-wraps diagnostics to N columns.
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

15 years agoImplement bit-field promotion rules for C99. Fixes PR3500.
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

15 years agoAdd support for -Wno-format-zero-length.
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

15 years agoCheck for method type conflict between declaration in
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

15 years agoReplace more release+static_cast with takeAs.
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

15 years agoReplace a bunch of static_cast + release with takeAs.
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

15 years agoStoreManager::CastRegion:
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

15 years agoBasic Store: Always convert a non::LocAsInteger to a Loc when storing to a pointer.
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

15 years agoUpdate CMake file.
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

15 years agoGet rid of the implicit deref call when calling member functions where the base is...
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

15 years agoAdd function prototype for OSAtomicCompareAndSwap32Barrier.
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

15 years agoFix run line in failing test case (it was missing the '%s' for the
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

15 years agoteach -parse-noop about int128_t and friends.
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

15 years agoBugReporter (extensive diagnostics): introduce the notion of a "dead"
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

15 years agoFinish a thought in CheckVariableDeclaration's comment. No functionality change
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

15 years agoAdd testcase that illustrates the problem from r69699 regarding tentative definitions...
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

15 years agoRemove #if 0'ed code.
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

15 years agoAdd failing static analyzer case (this crashes).
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

15 years agoPR4013 and PR4105: pointer-like types can only be cast to/from integers
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

15 years agoC/ObjC work well enough with clang for them not to be a gcc strength anymore.
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

15 years agoadd word
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

15 years agoC/ObjC work well enough to claim support for them now.
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

15 years agoDon't assert when we think we need copy/dispose, but don't need them.
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

15 years agoDon't use indirect memory destinations for inline asm. Fixes 6841383.
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

15 years agoC++ destructors can have a single unnamed void parameter. Fixes <rdar://problem/6841210>.
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

15 years agoRemove a warning when this file is compiled optimized.
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

15 years agoRework the way we handle constructor decls to be less hacky and fix PR3948 completely.
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

15 years agoUse of super class ivar to synthesize property is back to being error.
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

15 years agoretain/release checker: Hook up attributes 'objc_ownership_retain' and
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

15 years agoMake a home for exception specs in the AST. Now Sema can hook them up.
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

15 years agoAllow attributes 'objc_ownership_retain' and 'objc_ownership_release' to be
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

15 years agoHook up Sema support for attributes on Objective-C method declarations that
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

15 years agoAdd parsing support in an Objective-C method declaration for attributes between
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

15 years agoName the "return-type" DiagGroup and reference it in a few places.
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

15 years agoProperly compute the alignment of typedefs that make use of the
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

15 years agoAPI for message dispatch of methods returning floats
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

15 years agoWarn about invalid return statements by default.
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

15 years agoUpdate checker build.
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

15 years agoFix for PR4108: be a bit looser with the casts that we accept in
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

15 years agoaccept and ignore two new warning specifiers. -Wno-discard-qual seems easy
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

15 years agofix i128 to return in 2 64-bit registers (rax/rdx on x86-64)
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

15 years agoonly support int128_t on 64-bit and larger targets. 32-bit targets don't
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

15 years agoHandle case in EvalReturn where we cache out in the ExplodedGraph.
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

15 years agoretain/release checker: Use the ObjCMethodDecl in the @implementation if no
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

15 years agoretain/release checker: Resolve method decl in @interface after getting the
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

15 years agoint128_t is apparently 128-bit aligned on all 64-bit targets, and
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

15 years agoinitial support for __[u]int128_t, which should be basically
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

15 years agoRemove two unused options.
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

15 years agoSema checking for incorrect placement of __block. Radar 6441502
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

15 years agoUse the new code gen optimization enum instead of passing in the optimization
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

15 years agoMake DISABLE_SMART_POINTERS work, again
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

15 years agoChange to warning when property uses an ivar in super class
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

15 years agoJust because a declaration has the same name as its containing class doesn't mean...
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