| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 140430
|
| |
|
|
|
|
| |
This exposes a -segmented-stacks bug.
llvm-svn: 140429
|
| |
|
|
|
|
| |
block; make sure we don't do that.
llvm-svn: 140428
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The token stream was not getting properly reset when leaving
ParseLexedMethodDef in some error cases. In the testcase, that caused later
accesses to the token stream to touch memory which had been freed as we
finished parsing the class definition. Major hat-tip to AddressSanitizer for
helping pinpoint the use-after-free, including the allocation and deallocation
points:
==21510== ERROR: AddressSanitizer heap-use-after-free on address 0x7feb3de87848 at pc 0x249f4e2 bp 0x7fff15a89df0 sp 0x7fff15a89ce0
READ of size 1 at 0x7feb3de87848 thread T0
#0 0x249f4e2 clang::TokenLexer::Lex()
#1 0x1c834a0 clang::Parser::ConsumeToken()
#2 0x1c7dc0f clang::Parser::ParseDeclarationOrFunctionDefinition()
#3 0x1c7e16b clang::Parser::ParseDeclarationOrFunctionDefinition()
<snip>
0x7feb3de87848 is located 1992 bytes inside of 3816-byte region [0x7feb3de87080,0x7feb3de87f68)
freed by thread T0 here:
#0 0x3a22c19 free
#1 0x1d136a1 clang::Parser::LexedMethod::~LexedMethod()
#2 0x1cef528 clang::Parser::DeallocateParsedClasses()
#3 0x1cef676 clang::Parser::PopParsingClass()
#4 0x1cea094 clang::Parser::ParseCXXMemberSpecification()
#5 0x1ce7ae5 clang::Parser::ParseClassSpecifier()
#6 0x1cfe588 clang::Parser::ParseDeclarationSpecifiers()
#7 0x1c7dbe8 clang::Parser::ParseDeclarationOrFunctionDefinition()
#8 0x1c7e16b clang::Parser::ParseDeclarationOrFunctionDefinition()
<snip>
previously allocated by thread T0 here:
#0 0x3a2302d realloc
#1 0x39d7c97 llvm::SmallVectorBase::grow_pod()
#2 0x1ac588e llvm::SmallVectorImpl<>::push_back()
#3 0x1d12d8b clang::Parser::ConsumeAndStoreUntil()
#4 0x1c9c24d clang::Parser::ConsumeAndStoreUntil()
#5 0x1d12c1e clang::Parser::ConsumeAndStoreUntil()
#6 0x1c9c24d clang::Parser::ConsumeAndStoreUntil()
#7 0x1d10042 clang::Parser::ParseCXXInlineMethodDef()
#8 0x1cec51a clang::Parser::ParseCXXClassMemberDeclaration()
#9 0x1ce9de5 clang::Parser::ParseCXXMemberSpecification()
#10 0x1ce7ae5 clang::Parser::ParseClassSpecifier()
#11 0x1cfe588 clang::Parser::ParseDeclarationSpecifiers()
#12 0x1c7dbe8 clang::Parser::ParseDeclarationOrFunctionDefinition()
#13 0x1c7e16b clang::Parser::ParseDeclarationOrFunctionDefinition()
<snip>
llvm-svn: 140427
|
| |
|
|
|
|
| |
of #-0.
llvm-svn: 140426
|
| |
|
|
|
|
|
|
| |
Math is hard, and isScaledConstantInRange() always returned false for
negative constants. It was doing unsigned division of negative numbers
before casting back to signed.
llvm-svn: 140425
|
| |
|
|
| |
llvm-svn: 140424
|
| |
|
|
| |
llvm-svn: 140423
|
| |
|
|
| |
llvm-svn: 140422
|
| |
|
|
|
|
|
|
| |
specified.
It should not crash lldb.
llvm-svn: 140421
|
| |
|
|
|
|
| |
even if it's zero, to distinguish them from non-post-indexed instructions.
llvm-svn: 140420
|
| |
|
|
|
|
|
|
|
|
| |
for one line
too long, so that the jump from the line above the bad line to the line after
ends up in the middle of the bad line instead. Added a workaround to lldb to just
continue to the end if we find ourselves stopped in the middle of some other line.
llvm-svn: 140419
|
| |
|
|
|
|
|
|
|
|
|
| |
Target::Remove/Disable/EnableALLWatchpointLocations()
methods. If passed as false, it signifies that only the debugger side is affected.
Modify Target::DeleteCurrentProcess() to use DisableAllWatchpointLocations(false) to
disable the watchpoint locations, instead of removing them between process instances.
llvm-svn: 140418
|
| |
|
|
|
|
|
|
|
|
|
|
| |
return before we try to dereference the target later in the function.
Currently,
% lldb -x
(lldb) target stop-hook list
crashes because of this.
llvm-svn: 140417
|
| |
|
|
|
|
| |
MIDDLE of another line, then continue till we get to the real beginning of a line. This is mostly to work around debug information bugs.
llvm-svn: 140416
|
| |
|
|
|
|
| |
testcases updated.
llvm-svn: 140415
|
| |
|
|
|
|
|
|
| |
doesn't.
Also, on windows, chdir seems to live in <direct.h>.
llvm-svn: 140414
|
| |
|
|
| |
llvm-svn: 140413
|
| |
|
|
| |
llvm-svn: 140412
|
| |
|
|
| |
llvm-svn: 140411
|
| |
|
|
| |
llvm-svn: 140410
|
| |
|
|
|
|
|
|
|
|
| |
to operate "as if" in a certain working directory.
- For now, we just implement this by changing the actual working directory, but
eventually we would want to handle this transparently. This is useful to
avoid an extra exec() pair in some situations, and will be something we would
want to support for more flexibility in using the Clang libraries.
llvm-svn: 140409
|
| |
|
|
| |
llvm-svn: 140408
|
| |
|
|
| |
llvm-svn: 140407
|
| |
|
|
|
|
|
|
| |
merging for overrides. One might want to make a method's availability
in a superclass different from that of its subclass. Fixes
<rdar://problem/10166223>.
llvm-svn: 140406
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
is cast to a boolean. An exception has been made for string literals in
logical expressions to allow the common case of use in assert statements.
bool x;
x = "hi"; // Warn here
void foo(bool x);
foo("hi"); // Warn here
assert(0 && "error");
assert("error); // Warn here
llvm-svn: 140405
|
| |
|
|
|
|
|
| |
MatchRHSPunctuation appropriately and giving a useful source location
for the complaint about attributes being added to a category.
llvm-svn: 140404
|
| |
|
|
|
|
| |
using ImmutableMapRef). Gives ~2% speedup.
llvm-svn: 140403
|
| |
|
|
|
|
| |
ImmutableSetRef from an ImmutableSet object.
llvm-svn: 140402
|
| |
|
|
| |
llvm-svn: 140401
|
| |
|
|
|
|
|
|
| |
the key function is inline, rather than the original
declaration. Perhaps FunctionDecl::isInlined() is poorly named. Fixes
<rdar://problem/9979458>.
llvm-svn: 140400
|
| |
|
|
|
|
| |
write barrier with captured pointer to object. // rdar://10150823
llvm-svn: 140399
|
| |
|
|
| |
llvm-svn: 140398
|
| |
|
|
| |
llvm-svn: 140397
|
| |
|
|
|
|
| |
changes.
llvm-svn: 140396
|
| |
|
|
|
|
|
|
| |
sets of
callee-saved registers and reserved registers.
llvm-svn: 140395
|
| |
|
|
| |
llvm-svn: 140394
|
| |
|
|
|
|
| |
watchpt-id-list'.
llvm-svn: 140393
|
| |
|
|
|
|
| |
Update the test case to fix test suite failure.
llvm-svn: 140392
|
| |
|
|
|
|
| |
patch contributed by Jia Liu!
llvm-svn: 140391
|
| |
|
|
| |
llvm-svn: 140390
|
| |
|
|
| |
llvm-svn: 140389
|
| |
|
|
| |
llvm-svn: 140388
|
| |
|
|
| |
llvm-svn: 140387
|
| |
|
|
| |
llvm-svn: 140386
|
| |
|
|
|
|
| |
Original patch by Liu.
llvm-svn: 140385
|
| |
|
|
| |
llvm-svn: 140384
|
| |
|
|
|
|
| |
hadd/hsub intrinsics into the new fhadd/fhsub X86 node.
llvm-svn: 140383
|
| |
|
|
|
|
| |
-fdelayed-template-parsing.
llvm-svn: 140382
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also conducted some reformatting. As the LLVM coding standard doc does not
seem to touch on how to align function arguments, and format code longer than
80 cols in general, the confusion persists. There is the golden rule, but as
this code has gone through several styles to deal with this, the golden rule
seems to be ignored. The latest reformatting effort tries to match the other
source files as much as possible.
Tested on OS X 10.7.1 with, and without the OLD_EXC_SYSTEM defined. Have NOT
tested on LINUX.
llvm-svn: 140379
|