Anders Carlsson
6f5c15688d
When calling the cleanup function specified by __attribute__((cleanup)), make sure to bitcast the argument so it has the same type as the first argument of the cleanup function. Fixes <rdar://problem/6827047>.
...
llvm-svn: 70098
2009-04-26 00:34:20 +00:00
Chris Lattner
a4185c543e
fix PR4067: [Linux kernel] cannot aggregate codegen stmtexpr as lvalue
...
llvm-svn: 70067
2009-04-25 19:35:26 +00:00
Douglas Gregor
89c8e000cf
Fix handling of C99 "extern inline" semantics when dealing with
...
multiple declarations of the function. Should fix PR3989 and
<rdar://problem/6818429>.
llvm-svn: 69905
2009-04-23 18:22:55 +00:00
Devang Patel
a6acb390e7
Handle corner case where clang-cc is invoked directly to compile preprocessed source file without -main-file-name. In this case, CDDebugInfo is not able identify correct main source file becase SM.isFromMainFile() returns true for locations from header files as well as locations from main source file.
...
This patch takes conservative approach by not emitting more then one compile unit with isMain bit set.
llvm-svn: 69902
2009-04-23 18:09:16 +00:00
Chris Lattner
f8dc07369a
Fix some mishandling of the attr(gnu_inline) mode when used with
...
extern. Previously we would warn about it and ignore the attribute.
This is incorrect, it should be handled as a c89 "extern inline"
function. Many thanks to Matthieu Castet for pointing this out and
beating me over the head until I got it.
PR3988: extern inline function are not externally visible
llvm-svn: 69756
2009-04-22 00:03:30 +00:00
Chris Lattner
2f343dd5c8
fix PR4026: Clang can't codegen __func__ without implicit cast
...
llvm-svn: 69747
2009-04-21 23:00:09 +00:00
Chris Lattner
a9aeea9f27
use of predefined identifiers like __func__ at global scope warn in sema,
...
but crashed codegen. Fix this to report the name of the llvm function.
This fixes rdar://6808051
llvm-svn: 69658
2009-04-21 04:41:23 +00:00
Chris Lattner
ddf6ca0355
the __gnuc_inline__ attribute is actually named __gnu_inline__,
...
PR4023
llvm-svn: 69618
2009-04-20 19:12:28 +00:00
Devang Patel
45dfbd16b0
Add test case to check line number in debug info.
...
llvm-svn: 69617
2009-04-20 19:07:55 +00:00
Eli Friedman
bc633beda4
PR3247: Handle a couple of cases where we weren't emitting VLA sizes (and
...
subsequently crashed).
llvm-svn: 69567
2009-04-20 03:54:15 +00:00
Eli Friedman
3253e189c6
PR3248: Make sure the evaluate the operand of a sizeof when it has a VLA type.
...
Adapted from patch by Tim Northover.
llvm-svn: 69566
2009-04-20 03:21:44 +00:00
Eli Friedman
daea3f62b5
Print an error for uses of __thread on targets which don't support it.
...
llvm-svn: 69553
2009-04-19 21:48:33 +00:00
Eli Friedman
4f856744e5
PR3853: Add CodeGen support for __thread.
...
llvm-svn: 69545
2009-04-19 21:05:03 +00:00
Chris Lattner
c2e868fd14
fix incorrect lowering of __builtin_ia32_shufpd, rdar://6803924
...
llvm-svn: 69428
2009-04-18 07:01:54 +00:00
Chris Lattner
032f7665d0
rename file.
...
llvm-svn: 69427
2009-04-18 07:00:54 +00:00
Chris Lattner
85e4dd4055
don't dump .ll file in this dir.
...
llvm-svn: 69426
2009-04-18 07:00:06 +00:00
Daniel Dunbar
c3e7cff6d3
Attributes on block functions were not being set.
...
- <rdar://problem/6800351> clang not producing correct large struct
return code for Blocks
llvm-svn: 69337
2009-04-17 00:48:04 +00:00
Daniel Dunbar
426b5cf16a
Ensure that the most recent declaration of a tentative definition wins
...
when generating a common definition.
llvm-svn: 69287
2009-04-16 15:34:14 +00:00
Daniel Dunbar
7dd749e6fd
Defer generation of tentative definitions.
...
- PR3980.
- <rdar://problem/6762287> [irgen] crash when generating tentative
definition of incomplete structure
- This also avoids creating common definitions for things which are
later overwritten.
- XFAIL'ed external-defs.c, it isn't completing types properly yet.
llvm-svn: 69231
2009-04-15 22:08:45 +00:00
Devang Patel
9074ed8c6a
Set DebugInfo at the beginning of GenerateBlockFunction().
...
llvm-svn: 69228
2009-04-15 21:51:44 +00:00
Chris Lattner
e94e13ca35
remove #include of system header, making this a) not apple specific, and
...
b) test dramatically faster.
llvm-svn: 69135
2009-04-15 04:26:10 +00:00
Chris Lattner
bae0e68930
Fix PR3988: extern inline functions get strong symbol definitions in
...
C99 mode. This is a regression from an earlier patch of mine.
This also simplifies the linkage enums a bit.
llvm-svn: 69069
2009-04-14 20:25:53 +00:00
Chris Lattner
02e987f3e8
implement codegen support for __attribute((__gnuc_inline__)),
...
pulling some attribute munging stuff into GetLinkageForFunction.
This should fix PR3986
llvm-svn: 69045
2009-04-14 16:44:36 +00:00
Chris Lattner
92028dad66
defer emission of always_inline, extern_inline, and inline functions (when
...
not in c89 mode).
llvm-svn: 69032
2009-04-14 06:44:48 +00:00
Chris Lattner
256c9507c8
set the linkage of an inline function according to its language rules.
...
llvm-svn: 69030
2009-04-14 06:27:57 +00:00
Steve Naroff
e4e55d2706
Fix crasher in ASTContext::getObjCEncodingForMethodDecl().
...
This was exposed as a result of something else that was recently fixed.
llvm-svn: 69004
2009-04-14 00:03:58 +00:00
Steve Naroff
84073ec51f
Fixed crasher in <rdar://problem/6780904> [irgen] Assertion failed: (Result == conversionOK && "UTF-8 to UTF-16 conversion failed"), function GetAddrOfConstantCFString, file CodeGenModule.cpp, line 1063.
...
Still a diagnostic related FIXME (will discuss with Daniel/Fariborz offline).
llvm-svn: 68975
2009-04-13 19:08:08 +00:00
Chris Lattner
03a6cbbd91
pass -fblocks
...
llvm-svn: 68878
2009-04-11 19:49:49 +00:00
Fariborz Jahanian
aae4349df9
Fixes a ir-gen crash for K&R style blocks.
...
llvm-svn: 68865
2009-04-11 17:55:15 +00:00
Daniel Dunbar
8c920c9220
Don't set both readnone and readonly.
...
llvm-svn: 68833
2009-04-10 22:14:52 +00:00
Daniel Dunbar
d272cca527
Internal variables could mistakenly have "hidden" visibility when
...
their emission was deferred.
- <rdar://problem/6775234> variables with internal linkage should not
be exposed with -fvisibility=hidden.
llvm-svn: 68818
2009-04-10 20:26:50 +00:00
Mike Stump
6764593098
Fixup codegen for nested blocks that use copy/dispose in the inner
...
blocks, so that the outer blocks use it as well. Radar 6762279
llvm-svn: 68811
2009-04-10 18:52:28 +00:00
Daniel Dunbar
b041085c17
Add more builtin definitions, including strcmp.
...
- PR3964.
llvm-svn: 68710
2009-04-09 16:42:50 +00:00
Anders Carlsson
a60cbcdfe6
Don't assume that a block always has a FunctionProtoType. Fixes rdar://6768379.
...
llvm-svn: 68583
2009-04-08 02:55:55 +00:00
Daniel Dunbar
ea10ab668f
Visibility attributes should only be set on definition.
...
llvm-svn: 68561
2009-04-07 22:36:33 +00:00
Eli Friedman
574c745370
Diagnose uses of function specifiers on declarations which don't declare
...
functions. Fixes PR3941.
llvm-svn: 68541
2009-04-07 19:37:57 +00:00
Daniel Dunbar
4fab57ddea
Implement __sync_{add,sub,and,or,xor}_and_fetch and
...
__sync_bool_compare_and_swap.
- <rdar://problem/6762223> [sema/irgen] support
__sync_bool_compare_and_swap and __sync_add_and_fetch
llvm-svn: 68482
2009-04-07 00:55:51 +00:00
Anton Korobeynikov
18e831dcc9
Testcase for regparm codegen
...
llvm-svn: 68415
2009-04-04 00:49:38 +00:00
Anders Carlsson
16b1461c21
Ignore plus operands when looking up the operand number from a named operand. This matches llvm-gcc and fixes PR3908.
...
llvm-svn: 68371
2009-04-03 05:57:08 +00:00
Fariborz Jahanian
befc9dfbff
Implement -fvisibility.
...
llvm-svn: 68369
2009-04-03 03:28:57 +00:00
Daniel Dunbar
fd6cfcffa2
Add target hook for setting symbol prefix and section of unicode
...
string literals.
llvm-svn: 68363
2009-04-03 00:57:44 +00:00
Mike Stump
d3e3885f2d
Remove -ftrapu.
...
llvm-svn: 68330
2009-04-02 18:15:54 +00:00
Mike Stump
36c36ebc8b
Oops, almost forgot the testcases.
...
llvm-svn: 68270
2009-04-02 01:14:26 +00:00
Daniel Dunbar
e80bd1897c
x86-32 Darwin ABI: Handle small structures correctly.
...
- Small structures are returned in a register if:
1. They fit nicely in a register.
2. All fields fit nicely in a register.
(more or less)
- We now pass the first 5000 ABITests if unions are disabled.
- <rdar://problem/6497882> [irgen] x86-32 ABI compatibility with
small structs
llvm-svn: 68197
2009-04-01 07:45:00 +00:00
Daniel Dunbar
58e2971bb0
x86-32 Darwin ABI: Single element arrays can be part of "single
...
element structures", which have different ABI rules.
- Current return-arguments-32 status is: 1 out of 1000 failures (-7)
- Also, vectors inside "single element structs" require special
handling.
llvm-svn: 68196
2009-04-01 07:08:38 +00:00
Daniel Dunbar
cd76e673eb
x86-32 Darwin ABI: Handle direct return of vectors.
...
- Current return-arguments-32 status is: 8 out of 1000 failures (-7)
llvm-svn: 68192
2009-04-01 06:13:08 +00:00
Daniel Dunbar
f77e292a0f
Fix a subtle bug where the cleanup scope entries had a dangling block reference
...
- <rdar://problem/6732143> Crash when generating @synchronize for
zero-cost exception
- Thanks to Anders for helping track down the problem.
llvm-svn: 68186
2009-04-01 04:37:47 +00:00
Eli Friedman
1c3fb22cad
Fix pascal string support; testcase from mailing list message.
...
llvm-svn: 68181
2009-04-01 03:17:08 +00:00
Daniel Dunbar
08b216abf1
Add Target hooks for IRgen of [cf]string literals.
...
- Notably, set section on cfstring literal string data (for now, this
is done everywhere because it matches what we were already doing
for the CFString data itself)
- <rdar://problem/6599098> [irgen] linker requires objc string data
to go into cstring
llvm-svn: 68160
2009-03-31 23:42:16 +00:00
Chris Lattner
f41e87f4cd
Change UsedArray to be a vector of WeakVH to fix a dangling pointer problem that occurs when
...
attribute(used) and asm renaming are used together.
llvm-svn: 68155
2009-03-31 22:37:52 +00:00