]> granicus.if.org Git - clang/log
clang
15 years agoUnbreak Darwin PIC handling; my refactoring yesterday was bogus.
Daniel Dunbar [Fri, 20 Feb 2009 20:52:47 +0000 (20:52 +0000)]
Unbreak Darwin PIC handling; my refactoring yesterday was bogus.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65154 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agomore random cleanups, add some fixme's. ObjCCategoryImplDecl really
Chris Lattner [Fri, 20 Feb 2009 20:48:45 +0000 (20:48 +0000)]
more random cleanups, add some fixme's.  ObjCCategoryImplDecl really
shouldn't be a NamedDecl.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65153 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agodestroy should forward to base class.
Chris Lattner [Fri, 20 Feb 2009 20:42:28 +0000 (20:42 +0000)]
destroy should forward to base class.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65151 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agomove the @implementation ivar list to being an ObjCList, which prevents
Chris Lattner [Fri, 20 Feb 2009 20:41:34 +0000 (20:41 +0000)]
move the @implementation ivar list to being an ObjCList, which prevents
it from being leaked, among other things.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65150 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoPTH generation: Clear the cleaning bit for literals (whose spellings are cached).
Ted Kremenek [Fri, 20 Feb 2009 20:32:39 +0000 (20:32 +0000)]
PTH generation: Clear the cleaning bit for literals (whose spellings are cached).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65148 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd some IRgen improvement notes.
Daniel Dunbar [Fri, 20 Feb 2009 19:34:45 +0000 (19:34 +0000)]
Add some IRgen improvement notes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65146 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoShorten; no functionality change.
Daniel Dunbar [Fri, 20 Feb 2009 19:34:33 +0000 (19:34 +0000)]
Shorten; no functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65145 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoremove dead list.
Chris Lattner [Fri, 20 Feb 2009 18:57:29 +0000 (18:57 +0000)]
remove dead list.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65142 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoTake advantage of noreturn attribute to add unreachable instruction &
Daniel Dunbar [Fri, 20 Feb 2009 18:54:31 +0000 (18:54 +0000)]
Take advantage of noreturn attribute to add unreachable instruction &
clear insertion point. The rest of IRgen should theoretically take
advantage of this to avoid emitting dead code. Theory != Practice.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65141 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAlways try to fold array sizes, and warn if we could fold something that isn't an...
Anders Carlsson [Fri, 20 Feb 2009 18:53:20 +0000 (18:53 +0000)]
Always try to fold array sizes, and warn if we could fold something that isn't an ICE. This makes us compatible with GCC.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65140 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix test case.
Daniel Dunbar [Fri, 20 Feb 2009 18:53:07 +0000 (18:53 +0000)]
Fix test case.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65139 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoremove some more methods from objc decls, using the iterator
Chris Lattner [Fri, 20 Feb 2009 18:43:26 +0000 (18:43 +0000)]
remove some more methods from objc decls, using the iterator
interfaces more consistently.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65138 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoHandle constant int -> ptr casts of lvalue results.
Daniel Dunbar [Fri, 20 Feb 2009 18:22:23 +0000 (18:22 +0000)]
Handle constant int -> ptr casts of lvalue results.
 - PR3463 (again).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65133 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoremove some slow O(n) methods.
Chris Lattner [Fri, 20 Feb 2009 18:18:36 +0000 (18:18 +0000)]
remove some slow O(n) methods.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65132 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoChange ObjCForwardProtocolDecl to use an ObjCList.
Chris Lattner [Fri, 20 Feb 2009 18:10:37 +0000 (18:10 +0000)]
Change ObjCForwardProtocolDecl to use an ObjCList.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65131 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSet call attribute for direct calls (i.e. noreturn).
Daniel Dunbar [Fri, 20 Feb 2009 18:06:48 +0000 (18:06 +0000)]
Set call attribute for direct calls (i.e. noreturn).
 - Remove an unused variant of EmitCallExpr overload.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65130 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agomove the interace list of @class to use ObjCList.
Chris Lattner [Fri, 20 Feb 2009 18:04:31 +0000 (18:04 +0000)]
move the interace list of @class to use ObjCList.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65129 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix <rdar://problem/6586239> bitfield constraints not enforced (for ObjC)
Steve Naroff [Fri, 20 Feb 2009 17:57:11 +0000 (17:57 +0000)]
Fix <rdar://problem/6586239> bitfield constraints not enforced (for ObjC)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65128 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoremove a dead list.
Chris Lattner [Fri, 20 Feb 2009 17:53:35 +0000 (17:53 +0000)]
remove a dead list.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65127 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoadd support for amd64-*, patch by Brooks Davis!
Chris Lattner [Fri, 20 Feb 2009 17:04:14 +0000 (17:04 +0000)]
add support for amd64-*, patch by Brooks Davis!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65124 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoccc: Spell mattr correctly.
Daniel Dunbar [Fri, 20 Feb 2009 07:47:48 +0000 (07:47 +0000)]
ccc: Spell mattr correctly.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65119 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoccc: Basic translation of gcc subtarget feature options to LLVM
Daniel Dunbar [Fri, 20 Feb 2009 07:35:04 +0000 (07:35 +0000)]
ccc: Basic translation of gcc subtarget feature options to LLVM
options (i.e., -mno-red-zone, -msoft-float, -mno-sse, etc.)
 - Also, make sure unwind tables default to on Darwin/x86_64.
 - PR3604.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65118 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoccc: Use toolchain hook for default relocation model value.
Daniel Dunbar [Fri, 20 Feb 2009 06:48:26 +0000 (06:48 +0000)]
ccc: Use toolchain hook for default relocation model value.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65116 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd some stdlib builtins
Daniel Dunbar [Fri, 20 Feb 2009 06:36:40 +0000 (06:36 +0000)]
Add some stdlib builtins

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65115 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoswitch ObjCMethodDecl's parameter list from being explicitly managed to an ObjCList.
Chris Lattner [Fri, 20 Feb 2009 06:23:21 +0000 (06:23 +0000)]
switch ObjCMethodDecl's parameter list from being explicitly managed to an ObjCList.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65114 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoswitch the interface ivar list from being explicitly managed to using ObjCList.
Chris Lattner [Fri, 20 Feb 2009 06:10:45 +0000 (06:10 +0000)]
switch the interface ivar list from being explicitly managed to using ObjCList.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65113 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agomove more objc destruction out of dtors into Destroy.
Chris Lattner [Fri, 20 Feb 2009 06:03:09 +0000 (06:03 +0000)]
move more objc destruction out of dtors into Destroy.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65112 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agomove some objc decl destruction out of dtors into Destroy method.
Chris Lattner [Fri, 20 Feb 2009 05:54:35 +0000 (05:54 +0000)]
move some objc decl destruction out of dtors into Destroy method.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65111 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd an example in comments.
Zhongxing Xu [Fri, 20 Feb 2009 05:19:30 +0000 (05:19 +0000)]
Add an example in comments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65110 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix potential use of uninitialized variable.
Ted Kremenek [Fri, 20 Feb 2009 04:34:29 +0000 (04:34 +0000)]
Fix potential use of uninitialized variable.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65109 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoA few small tweaks to isConstantInitializer. (No test because this
Eli Friedman [Fri, 20 Feb 2009 02:36:22 +0000 (02:36 +0000)]
A few small tweaks to isConstantInitializer. (No test because this
isn't getting used by Sema or CodeGen at the moment...)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65107 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUse -verify for consistency.
Eli Friedman [Fri, 20 Feb 2009 02:03:47 +0000 (02:03 +0000)]
Use -verify for consistency.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65106 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd support for * (unary dereference) operator to ExprConstant.
Eli Friedman [Fri, 20 Feb 2009 01:57:15 +0000 (01:57 +0000)]
Add support for * (unary dereference) operator to ExprConstant.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65105 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoccc: Use toolChain arch name instead of looking for arch command line
Daniel Dunbar [Fri, 20 Feb 2009 01:48:01 +0000 (01:48 +0000)]
ccc: Use toolChain arch name instead of looking for arch command line
argument; the toolchain should always know the arch.
 - Fixes: <rdar://problem/6582911> -ccc-clang-archs doesn't work for excluding ppc

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65104 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agooptimize the 'StoredDeclsMap' for the common case where there is
Chris Lattner [Fri, 20 Feb 2009 01:44:05 +0000 (01:44 +0000)]
optimize the 'StoredDeclsMap' for the common case where there is
exactly one decl with a specific name in a specific context.  This
avoids a bunch of malloc traffic and shrinks StoredDeclsMap to hold
one pointer instead of 3 words (for a std::vector).

This speeds up -fsyntax-only on cocoa.h with PTH by ~7.3%.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65103 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoccc: Store arch name in all toolchains.
Daniel Dunbar [Fri, 20 Feb 2009 01:36:35 +0000 (01:36 +0000)]
ccc: Store arch name in all toolchains.
 - No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65102 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSuppress constant initializer checking when the declaration isn't valid.
Eli Friedman [Fri, 20 Feb 2009 01:34:21 +0000 (01:34 +0000)]
Suppress constant initializer checking when the declaration isn't valid.
This prevents emitting diagnostics which are almost certainly useless.

(Note that the test is checking that we emit only one diagnostic.)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65101 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoccc: Give all tools access to the toolchain they are in.
Daniel Dunbar [Fri, 20 Feb 2009 01:30:38 +0000 (01:30 +0000)]
ccc: Give all tools access to the toolchain they are in.
 - No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65100 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoInitialize the Init variable to something reasonable when we emit an
Eli Friedman [Fri, 20 Feb 2009 01:18:21 +0000 (01:18 +0000)]
Initialize the Init variable to something reasonable when we emit an
error, so we don't crash.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65099 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoExprConstant handling for a couple more cases of pointer-to-int casts
Eli Friedman [Fri, 20 Feb 2009 01:15:07 +0000 (01:15 +0000)]
ExprConstant handling for a couple more cases of pointer-to-int casts
from the testsuite.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65098 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMore objc gc's ir-gen fixes.
Fariborz Jahanian [Fri, 20 Feb 2009 01:14:43 +0000 (01:14 +0000)]
More objc gc's ir-gen fixes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65097 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agomake the redeclaration case faster for the common instance of a redeclaration
Chris Lattner [Fri, 20 Feb 2009 01:10:07 +0000 (01:10 +0000)]
make the redeclaration case faster for the common instance of a redeclaration
where there is exactly one existing declaration.  This is common.

this speeds up clang about 3% on cocoa.h for me 0.165 -> 0.160s

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65096 91177308-0d34-0410-b5e6-96231b3b80d8

15 years ago80 cols
Chris Lattner [Fri, 20 Feb 2009 00:56:18 +0000 (00:56 +0000)]
80 cols

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65095 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoslight code simplifications.
Chris Lattner [Fri, 20 Feb 2009 00:55:03 +0000 (00:55 +0000)]
slight code simplifications.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65094 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoDeox and Capitolize.
Mike Stump [Fri, 20 Feb 2009 00:45:51 +0000 (00:45 +0000)]
Deox and Capitolize.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65093 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agomap source ranges through macro expansions. Before:
Chris Lattner [Fri, 20 Feb 2009 00:25:28 +0000 (00:25 +0000)]
map source ranges through macro expansions.  Before:

t.m:5:2: error: invalid operands to binary expression ('typeof(P)' (aka 'struct mystruct') and 'typeof(F)' (aka 'float'))
 MAX(P, F);
 ^~~~~~~~~
t.m:1:78: note: instantiated from:
#define MAX(A,B)    ({ __typeof__(A) __a = (A); __typeof__(B) __b = (B); __a < __b ? __b : __a; })
                                                                             ^

(no ranges on the second diagnostics)

After:

t.m:5:2: error: invalid operands to binary expression ('typeof(P)' (aka 'struct mystruct') and 'typeof(F)' (aka 'float'))
 MAX(P, F);
 ^~~~~~~~~
t.m:1:78: note: instantiated from:
#define MAX(A,B)    ({ __typeof__(A) __a = (A); __typeof__(B) __b = (B); __a < __b ? __b : __a; })
                                                                         ~~~ ^ ~~~

(ranges!)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65090 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix spacing.
Mike Stump [Fri, 20 Feb 2009 00:19:45 +0000 (00:19 +0000)]
Fix spacing.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65089 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agorefactor, pass ranges down instead of the whole
Chris Lattner [Fri, 20 Feb 2009 00:18:51 +0000 (00:18 +0000)]
refactor, pass ranges down instead of the whole
DiagnosticInfo.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65088 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd test case for <rdar://problem/6562655>.
Ted Kremenek [Fri, 20 Feb 2009 00:10:09 +0000 (00:10 +0000)]
Add test case for <rdar://problem/6562655>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65085 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix crash from <rdar://problem/6562655>: 'init' method only return a receiver alias...
Ted Kremenek [Fri, 20 Feb 2009 00:05:35 +0000 (00:05 +0000)]
Fix crash from <rdar://problem/6562655>: 'init' method only return a receiver alias if the return type is a location.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65084 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoreplace a dirty hack with a clean solution. Too bad we can't
Chris Lattner [Thu, 19 Feb 2009 23:53:20 +0000 (23:53 +0000)]
replace a dirty hack with a clean solution.  Too bad we can't
use Blocks for our callbacks ;-)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65083 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoretain/release checker: Generate an intermediate simulation node for "leak"
Ted Kremenek [Thu, 19 Feb 2009 23:47:02 +0000 (23:47 +0000)]
retain/release checker: Generate an intermediate simulation node for "leak"
transitions and then generate a subsequent node that removes the dead symbol
bindings. This should drastically improve caching in the simulation graph when
retain-counted objects are being tracked.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65082 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix a long standard problem with clang retaining "too much" sugar
Chris Lattner [Thu, 19 Feb 2009 23:45:49 +0000 (23:45 +0000)]
Fix a long standard problem with clang retaining "too much" sugar
information about types.  We often print diagnostics where we say
"foo_t" is bad, but the user doesn't know how foo_t is declared
(because it is a typedef).  Fix this by expanding sugar when present
in a diagnostic (and not one of a few special cases, like vectors).

Before:
t.m:5:2: error: invalid operands to binary expression ('typeof(P)' and 'typeof(F)')
 MAX(P, F);
 ^~~~~~~~~
t.m:1:78: note: instantiated from:
#define MAX(A,B)    ({ __typeof__(A) __a = (A); __typeof__(B) __b = (B); __a < __b ? __b : __a; })
                                                                             ^

After:
t.m:5:2: error: invalid operands to binary expression ('typeof(P)' (aka 'struct mystruct') and 'typeof(F)' (aka 'float'))
 MAX(P, F);
 ^~~~~~~~~
t.m:1:78: note: instantiated from:
#define MAX(A,B)    ({ __typeof__(A) __a = (A); __typeof__(B) __b = (B); __a < __b ? __b : __a; })
                                                                             ^

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65081 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdded a new method to GRStmtNodeBuilder to build nodes using an arbitrary
Ted Kremenek [Thu, 19 Feb 2009 23:45:28 +0000 (23:45 +0000)]
Added a new method to GRStmtNodeBuilder to build nodes using an arbitrary
PostStmt program point. This allows clients to pass in PostStmtCustom program
points.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65080 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoProgramPoint::Profile now specially handles PostStmtCustom (hashes on tag and data...
Ted Kremenek [Thu, 19 Feb 2009 23:43:16 +0000 (23:43 +0000)]
ProgramPoint::Profile now specially handles PostStmtCustom (hashes on tag and data) so that clients don't need a unique address for the pair itself.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65079 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agopretty printing vector types should print the element type, not just the attribute.
Chris Lattner [Thu, 19 Feb 2009 23:42:29 +0000 (23:42 +0000)]
pretty printing vector types should print the element type, not just the attribute.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65078 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMore objc's gc ir-gen stuff.
Fariborz Jahanian [Thu, 19 Feb 2009 23:36:06 +0000 (23:36 +0000)]
More objc's gc ir-gen stuff.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65077 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoGetTypeForDeclarator can return null on error now, handle this.
Chris Lattner [Thu, 19 Feb 2009 23:13:55 +0000 (23:13 +0000)]
GetTypeForDeclarator can return null on error now, handle this.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65076 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoccc: Give nicer error when spawning a subprocess fails.
Daniel Dunbar [Thu, 19 Feb 2009 22:59:57 +0000 (22:59 +0000)]
ccc: Give nicer error when spawning a subprocess fails.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65075 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoExtend Evaluate() to fold (int) <pointer type>.
Daniel Dunbar [Thu, 19 Feb 2009 22:24:01 +0000 (22:24 +0000)]
Extend Evaluate() to fold (int) <pointer type>.
 - PR3463, PR3398, <rdar://problem/6553401> crash on relocatable
   symbol addresses as constants in static locals.

 - There are many more scenarious we could handle (like arithmetic on
   such an int) but this is the main use case.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65074 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSimplify, no functionality change.
Daniel Dunbar [Thu, 19 Feb 2009 22:16:29 +0000 (22:16 +0000)]
Simplify, no functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65073 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix another PTH warning that should not be a note.
Ted Kremenek [Thu, 19 Feb 2009 22:14:49 +0000 (22:14 +0000)]
Fix another PTH warning that should not be a note.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65072 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMake PTH warnings actual warnings instead of 'notes'.
Ted Kremenek [Thu, 19 Feb 2009 22:13:40 +0000 (22:13 +0000)]
Make PTH warnings actual warnings instead of 'notes'.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65071 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd enough checking to ensure that non-constant block literals don't
Mike Stump [Thu, 19 Feb 2009 22:01:56 +0000 (22:01 +0000)]
Add enough checking to ensure that non-constant block literals don't
appear to be constant.  I'll probably redo this and throw it all away
later once we have codegen for BlockDeclRefExprs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65070 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoccc: Also look for .gch files when seeing if we should auto load a
Daniel Dunbar [Thu, 19 Feb 2009 22:01:23 +0000 (22:01 +0000)]
ccc: Also look for .gch files when seeing if we should auto load a
token-cache for clang.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65069 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRemove IRgen constant emission assumption that LValue APValue results
Daniel Dunbar [Thu, 19 Feb 2009 21:44:24 +0000 (21:44 +0000)]
Remove IRgen constant emission assumption that LValue APValue results
only occur for pointer types; they are also possible for integer types
now.
 - No intended functionality change, IntExprEvaluate doesn't return
   LValue results yet.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65066 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoChange IntExprEvaluator to operate on an APValue not an APSInt.
Daniel Dunbar [Thu, 19 Feb 2009 20:17:33 +0000 (20:17 +0000)]
Change IntExprEvaluator to operate on an APValue not an APSInt.
 - Prep for handling lvalues, no intended functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65063 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoArguments to unordered comparison builtins may need implicit casts.
Daniel Dunbar [Thu, 19 Feb 2009 19:28:43 +0000 (19:28 +0000)]
Arguments to unordered comparison builtins may need implicit casts.
 - <rdar://problem/6094103> sema fails to promote type arguments to __builtin_isgreater (and friends)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65059 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd irgen support for the noinline attribute.
Anders Carlsson [Thu, 19 Feb 2009 19:22:11 +0000 (19:22 +0000)]
Add irgen support for the noinline attribute.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65056 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd sema support for the noinline attribute.
Anders Carlsson [Thu, 19 Feb 2009 19:16:48 +0000 (19:16 +0000)]
Add sema support for the noinline attribute.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65055 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUpdate checker build.
Ted Kremenek [Thu, 19 Feb 2009 19:08:21 +0000 (19:08 +0000)]
Update checker build.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65054 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd another IntExprEvaluator::Success overload to suck up remained of
Daniel Dunbar [Thu, 19 Feb 2009 18:37:50 +0000 (18:37 +0000)]
Add another IntExprEvaluator::Success overload to suck up remained of
manual setting of the Result.

 - Idiom now enforces that result will always have correct width and
   type; this exposed three new bugs:

    o Enum constant decl value can have different width than type
      (PR3173).

    o EvaluateInteger should not run an IntExprEvaluator over
      non-integral expressions.

    o FloatExprEvaluate was not handling casts correctly (it was
      evaluating the cast in the IntExprEvaluator!).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65053 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agofix PR3609, emit:
Chris Lattner [Thu, 19 Feb 2009 18:29:56 +0000 (18:29 +0000)]
fix PR3609, emit:

t.c:1:10: error: missing terminating '>' character
#include <stdio.h
         ^

instead of:

t.c:1:10: error: missing terminating " character
#include <stdio.h
         ^

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65052 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoGenerate the conservative objc gc's API for now.
Fariborz Jahanian [Thu, 19 Feb 2009 18:29:24 +0000 (18:29 +0000)]
Generate the conservative objc gc's API for now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65051 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUpdate test case to include a leak that occurs at the place of allocation.
Ted Kremenek [Thu, 19 Feb 2009 18:20:28 +0000 (18:20 +0000)]
Update test case to include a leak that occurs at the place of allocation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65048 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoretain/release checker: Fix crasher when the leak site is the same expression that...
Ted Kremenek [Thu, 19 Feb 2009 18:18:48 +0000 (18:18 +0000)]
retain/release checker: Fix crasher when the leak site is the same expression that allocates an object.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65047 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix PR3619 by properly considering size modifiers and type quals when
Chris Lattner [Thu, 19 Feb 2009 17:31:02 +0000 (17:31 +0000)]
Fix PR3619 by properly considering size modifiers and type quals when
uniquing array types.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65046 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoonly track integer and pointer values for now.
Zhongxing Xu [Thu, 19 Feb 2009 09:56:08 +0000 (09:56 +0000)]
only track integer and pointer values for now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65041 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agofix typo
Gabor Greif [Thu, 19 Feb 2009 09:27:40 +0000 (09:27 +0000)]
fix typo

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65040 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd IntExprEvaluator::Success method.
Daniel Dunbar [Thu, 19 Feb 2009 09:06:44 +0000 (09:06 +0000)]
Add IntExprEvaluator::Success method.
 - Handles assignment to Result with appropriate type.

 - Simplifies & encapsulates most direct handling of the Result value;
   prep for allowing IntExprEvaluator to deal with LValue APValues.

 - No intended functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65038 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agofix test case
Zhongxing Xu [Thu, 19 Feb 2009 08:45:23 +0000 (08:45 +0000)]
fix test case

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65037 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoadd test case.
Zhongxing Xu [Thu, 19 Feb 2009 08:42:43 +0000 (08:42 +0000)]
add test case.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65036 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoConvert the offset to signed before making an ElementRegion with it. It seems
Zhongxing Xu [Thu, 19 Feb 2009 08:37:16 +0000 (08:37 +0000)]
Convert the offset to signed before making an ElementRegion with it. It seems
that this problem arises from time to time. We should find a fundamental
solution for it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65035 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUpdate checker build.
Ted Kremenek [Thu, 19 Feb 2009 07:22:21 +0000 (07:22 +0000)]
Update checker build.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65033 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoDon't emit K&R unprototyped function definitions as varargs.
Daniel Dunbar [Thu, 19 Feb 2009 07:15:39 +0000 (07:15 +0000)]
Don't emit K&R unprototyped function definitions as varargs.
 - <rdar://problem/6584606> clang/x86-64 - too many reg saves

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65032 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd Type::getAsFunctionNoProto
Daniel Dunbar [Thu, 19 Feb 2009 07:11:26 +0000 (07:11 +0000)]
Add Type::getAsFunctionNoProto

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65031 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoonly do one DenseMap lookup instead of two (one to find out if there is
Chris Lattner [Thu, 19 Feb 2009 07:05:16 +0000 (07:05 +0000)]
only do one DenseMap lookup instead of two (one to find out if there is
already an entry and one to insert).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65030 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agominor simplification.
Chris Lattner [Thu, 19 Feb 2009 07:02:09 +0000 (07:02 +0000)]
minor simplification.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65029 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agouse early exit to reduce indentation.
Chris Lattner [Thu, 19 Feb 2009 07:00:44 +0000 (07:00 +0000)]
use early exit to reduce indentation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65028 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agostandardise on bastardised american spelling.
Chris Lattner [Thu, 19 Feb 2009 06:49:30 +0000 (06:49 +0000)]
standardise on bastardised american spelling.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65027 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agofix a bug introduced in my previous patch: moving clang headers to the
Chris Lattner [Thu, 19 Feb 2009 06:48:28 +0000 (06:48 +0000)]
fix a bug introduced in my previous patch: moving clang headers to the
"after" group instead of the system group makes it so #include <limits.h>
picks up the *system* limits.h file before clang's.  This causes a failure
on linux and is definitely not what we want.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65026 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agodisable copying and assignment of AttributeList
Chris Lattner [Thu, 19 Feb 2009 06:41:35 +0000 (06:41 +0000)]
disable copying and assignment of AttributeList

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65025 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agofix warning in no-assert mode.
Chris Lattner [Thu, 19 Feb 2009 06:41:13 +0000 (06:41 +0000)]
fix warning in no-assert mode.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65024 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoEmit the correct diagnostics when we constant fold an array size to a negative value.
Anders Carlsson [Thu, 19 Feb 2009 06:30:50 +0000 (06:30 +0000)]
Emit the correct diagnostics when we constant fold an array size to a negative value.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65023 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agodon't new[] an empty array when an AttributeList has
Chris Lattner [Thu, 19 Feb 2009 06:25:12 +0000 (06:25 +0000)]
don't new[] an empty array when an AttributeList has
zero expression arguments.  This eliminates 2579 1-byte
mallocs when parsing Cocoa.h.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65022 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMake sure to check the value of the constant expression, as suggested by Daniel.
Anders Carlsson [Thu, 19 Feb 2009 06:19:15 +0000 (06:19 +0000)]
Make sure to check the value of the constant expression, as suggested by Daniel.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65021 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoEmission of global variable initialializer was broken in rare
Daniel Dunbar [Thu, 19 Feb 2009 05:36:41 +0000 (05:36 +0000)]
Emission of global variable initialializer was broken in rare
situation where a tentative decl was emitted *after* the actual
initialization. This occurs in some rare situations with static decls.
 - PR3613.

 - I'm not particularly happy with this fix, but I don't see a simpler
   or more elegant solution yet.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65018 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoscan-build now searches for the clang binary in the subdirectory 'cbin'.
Ted Kremenek [Thu, 19 Feb 2009 04:58:30 +0000 (04:58 +0000)]
scan-build now searches for the clang binary in the subdirectory 'cbin'.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65014 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoHandle the GNU void* and function pointer arithmetic extensions for constant expressi...
Anders Carlsson [Thu, 19 Feb 2009 04:55:58 +0000 (04:55 +0000)]
Handle the GNU void* and function pointer arithmetic extensions for constant expressions as well.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65013 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoalways search for "builtin" headers at the end of the search path,
Chris Lattner [Thu, 19 Feb 2009 04:55:19 +0000 (04:55 +0000)]
always search for "builtin" headers at the end of the search path,
and never remap them with -isysroot.  This fixes PR3614.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65012 91177308-0d34-0410-b5e6-96231b3b80d8