| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
since we aren't going to be calling them ever.
llvm-svn: 109377
|
| |
|
|
| |
llvm-svn: 109315
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Avoid use of Path.makeAbsolute().
DW_TAG_compile_unit uses two attributes DW_AT_name and DW_AT_comp_dir. Their expected values are:
$ clang foo.c -g
DW_AT_name - foo.c
DW_AT_comp_dir - `pwd`
$ clang one/two/foo.c -g
DW_AT_name - one/two/foo.c
DW_AT_comp_dir - `pwd`
$ clang /tmp/one/foo.c -g
DW_AT_name - /tmp/one/foo.c
DW_AT_comp_dir - empty
llvm-svn: 109303
|
| |
|
|
|
|
| |
Diagnose attempts to do this under the GNU or fragile NeXT runtimes.
llvm-svn: 109298
|
| |
|
|
|
|
|
|
| |
use of property-dot syntax using 'super' as receiver
is 'void'. This fixes a bug in generating correct
API for setter call. Fixes radar 8203426.
llvm-svn: 109297
|
| |
|
|
| |
llvm-svn: 109284
|
| |
|
|
|
|
|
| |
as well as some significant asymptotic inefficiencies with threading
multiple jumps through deep cleanups.
llvm-svn: 109274
|
| |
|
|
|
|
| |
absolute path for filename allows clients to query complete file location info from gdb breakpoints. Save constructed full file name.
llvm-svn: 109263
|
| |
|
|
|
|
|
|
|
|
|
| |
them as such. Type::is(Signed|Unsigned|)IntegerType() now return false
for vector types, and new functions
has(Signed|Unsigned|)IntegerRepresentation() cover integer types and
vector-of-integer types. This fixes a bunch of latent bugs.
Patch from Anton Yartsev!
llvm-svn: 109229
|
| |
|
|
|
|
|
|
|
|
|
|
| |
#line 41 "bar.c"
dummy (1, i);
#line 24 "bar.h"
i = f2 (i);
#line 44 "bar.c"
This is tested by step-line.exp in gdb testsuite.
llvm-svn: 109189
|
| |
|
|
|
|
| |
failures. There's a radar tracking this.
llvm-svn: 109170
|
| |
|
|
|
|
|
| |
warning flag in clang. Little more to do
for a PCH issue. Radar 6507158.
llvm-svn: 109129
|
| |
|
|
|
|
| |
This is tested by objc-rbreak.exp in gdb testsuite.
llvm-svn: 109050
|
| |
|
|
|
|
|
| |
Do not override known debug loc with unknown debug loc.
This is tested by sections.exp in gdb testsuite.
llvm-svn: 109022
|
| |
|
|
|
|
| |
(GNU runtime).
llvm-svn: 109012
|
| |
|
|
|
|
| |
optimised away (GNU runtime).
llvm-svn: 109010
|
| |
|
|
|
|
| |
commits.
llvm-svn: 109000
|
| |
|
|
| |
llvm-svn: 108999
|
| |
|
|
| |
llvm-svn: 108998
|
| |
|
|
|
|
| |
cleanup.
llvm-svn: 108997
|
| |
|
|
| |
llvm-svn: 108996
|
| |
|
|
| |
llvm-svn: 108995
|
| |
|
|
|
|
| |
using a lazy cleanup.
llvm-svn: 108994
|
| |
|
|
| |
llvm-svn: 108993
|
| |
|
|
|
|
|
| |
the block-release unwind cleanup: we're never going to test it if we don't turn
it on.
llvm-svn: 108992
|
| |
|
|
|
|
|
| |
from the laziness features here except better block ordering, but it removes yet
another CleanupBlock use.
llvm-svn: 108990
|
| |
|
|
| |
llvm-svn: 108989
|
| |
|
|
| |
llvm-svn: 108979
|
| |
|
|
|
|
| |
lazy cleanups.
llvm-svn: 108978
|
| |
|
|
|
|
|
|
|
| |
initializer of (). Make sure to use a simple memset() when we can, or
fall back to generating a loop when a simple memset will not
suffice. Fixes <rdar://problem/8212208>, a regression due to my work
in r107857.
llvm-svn: 108977
|
| |
|
|
|
|
| |
the last of the shared-code cleanups.
llvm-svn: 108975
|
| |
|
|
|
|
|
| |
a big deal, except that I want to eliminate the shared-code EH cleanups
in preparation for a significant algorithmic fix.
llvm-svn: 108973
|
| |
|
|
| |
llvm-svn: 108972
|
| |
|
|
| |
llvm-svn: 108951
|
| |
|
|
| |
llvm-svn: 108946
|
| |
|
|
|
|
| |
Fixes <rdar://problem/8212123>.
llvm-svn: 108944
|
| |
|
|
|
|
| |
doing an overflow check.
llvm-svn: 108943
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
which generates more efficient and more obviously conformant
code. We now test for overflow of the multiply then force
the result to -1 if so. On X86, this generates nice code
like this:
__Z4testl: ## @_Z4testl
## BB#0: ## %entry
subl $12, %esp
movl $4, %eax
mull 16(%esp)
testl %edx, %edx
movl $-1, %ecx
cmovel %eax, %ecx
movl %ecx, (%esp)
call __Znam
addl $12, %esp
ret
llvm-svn: 108927
|
| |
|
|
|
|
| |
Implements radar 8203301.
llvm-svn: 108917
|
| |
|
|
| |
llvm-svn: 108916
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
causing clang to compile this code into something that correctly throws a
length error, fixing a potential integer overflow security attack:
void *test(long N) {
return new int[N];
}
int main() {
test(1L << 62);
}
We do this even when exceptions are disabled, because it is better for the
code to abort than for the attack to succeed.
This is heavily based on a patch that Fariborz wrote.
llvm-svn: 108915
|
| |
|
|
|
|
| |
avoiding MDNode overhead.
llvm-svn: 108911
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
like this:
void *test(long N) {
return new int[N][42][42];
}
the loop generates two dead mul instructions:
%tmp = load i64* %N.addr ; <i64> [#uses=2]
%0 = mul i64 %tmp, 7056 ; <i64> [#uses=1]
%1 = mul i64 %tmp, 42 ; <i64> [#uses=1]
%2 = mul i64 %1, 42 ; <i64> [#uses=0]
%call = call noalias i8* @_Znam(i64 %0) ; <i8*> [#uses=1]
The scale of these multiplies is already handled by the typesize stuff.
llvm-svn: 108884
|
| |
|
|
|
|
|
| |
EmitCXXNewAllocSize. This code uses IRBuilder, which does
constant folding already.
llvm-svn: 108882
|
| |
|
|
|
|
| |
ObjC ABI version 2 this time.
llvm-svn: 108847
|
| |
|
|
| |
llvm-svn: 108807
|
| |
|
|
| |
llvm-svn: 108785
|
| |
|
|
| |
llvm-svn: 108764
|
| |
|
|
|
|
| |
sections. rdar://8207705
llvm-svn: 108749
|
| |
|
|
|
|
|
| |
linkage specification. Not sure if this is the ideal fix, but I'm reasonably
sure it's correct vs. gcc.
llvm-svn: 108656
|