| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The previous description of the noalias attribute did not accurately specify
the implemented semantics, and the terminology used differed unnecessarily
from that used by the C specification to define the semantics of restrict. For
the argument attribute, the semantics can be precisely specified in terms of
objects accessed through pointers based on the arguments, and this is now what
is done.
Saying that the semantics are 'slightly weaker' than that provided by C99
restrict is not really useful without further elaboration, so that has been
removed from the sentence.
noalias on a return value is really used to mean that the function is
malloc-like (and, in fact, we use this attribute to represent
__attribute__((malloc)) in Clang), and this is a stronger guarantee than that
provided by restrict (because it is a property of the pointed-to memory region,
not just a guarantee on object access). Clarifying this is relevant to fixing
(and was motivated by the discussion on) PR21556.
llvm-svn: 222497
|
|
|
|
| |
llvm-svn: 222496
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
LLDB supports many different register numbering schemes, and these
are typically prefixed with an indicator that lets the user know
what numbering scheme is used. The gcc numbering scheme is
prefixed with gcc, and there are similar ones for dwarf, gdb,
and gcc_dwarf.
LLDB also contains its own internal numbering scheme, but the enum
for LLDB's numbering scheme was prefixed differently. This patch
changes the names of these enums to use the same naming scheme for
the enum values as the rest of the register kinds by removing gpr_
and fpu_ prefixes, and instead using lldb_ prefixes for all enum
values.
Differential Revision: http://reviews.llvm.org/D6351
Reviewed by: Greg Clayton
llvm-svn: 222495
|
|
|
|
|
|
| |
now that the old JIT has been removed.
llvm-svn: 222494
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: ASAN fires on these tests because they don't clean up their memory.
Reviewers: danalbert, jroelofs, mclow.lists
Reviewed By: jroelofs
Subscribers: dblaikie, cfe-commits
Differential Revision: http://reviews.llvm.org/D6281
llvm-svn: 222493
|
|
|
|
| |
llvm-svn: 222492
|
|
|
|
|
|
| |
MSVC can't parse this pattern for range-based for loops.
llvm-svn: 222491
|
|
|
|
| |
llvm-svn: 222490
|
|
|
|
|
|
|
|
| |
match the custom lowering.
<rdar://problem/19026326>
llvm-svn: 222489
|
|
|
|
|
|
|
| |
correctly. This helps with catching problems caused by IRBuilder abuse
such as the one fixed in CFE r222487.
llvm-svn: 222488
|
|
|
|
|
|
|
|
|
|
|
|
| |
When emitting nested block definitions, the insert-at-point variant of
DIBuilder::insertDeclare() could be called with the insertion point set
to the end-of-BasicBlock sentinel, causing the parent pointer of the
CallInst to be set to the intentionally bogus value of the sentinel.
Fixed by conditionally invoking the correct version of insertDeclare().
rdar://problem/19034882
llvm-svn: 222487
|
|
|
|
|
|
| |
Reviewed at http://reviews.llvm.org/D6244
llvm-svn: 222486
|
|
|
|
|
|
| |
variable, but we might not be emitting it (such as templates)
llvm-svn: 222485
|
|
|
|
| |
llvm-svn: 222484
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
/debug makes MSVC link.exe to not remove unused sections from
the resulting executable. We did the same thing before. However,
I realized that the removal of associative section depends on
the dead-stripping pass in LLD, so we cannot disable that. Or
LLD may produce slightly broken executables that have too much
data in it (which could result in nasty subtle bugs).
This patch is a temporary measure to create correct executable.
Currently /debug does not have any real effect for LLD anyway.
I'll improve associative section handling in another patch, so that
they are removed from output without depending on the dead-stripping
pass.
llvm-svn: 222483
|
|
|
|
|
|
|
|
|
|
| |
for lambda expressions. That can't ever work; we need to transform the
parameters in order to create new ones in the new call operator context.
Fixes a rejects-valid when transforming a context containing a
lambda-expression that uses its function parameters in C++14 mode.
llvm-svn: 222482
|
|
|
|
|
|
| |
Follow up to r221940, where I must not have caught em all. NFC
llvm-svn: 222481
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These recently all grew a unique_ptr<TargetLoweringObjectFile> member in
r221878. When anyone calls a virtual method of a class, clang-cl
requires all virtual methods to be semantically valid. This includes the
implicit virtual destructor, which triggers instantiation of the
unique_ptr destructor, which fails because the type being deleted is
incomplete.
This is just part of the ongoing saga of PR20337, which is affecting
Blink as well. Because the MSVC ABI doesn't have key functions, we end
up referencing the vtable and implicit destructor on any virtual call
through a class. We don't actually end up emitting the dtor, so it'd be
good if we could avoid this unneeded type completion work.
llvm-svn: 222480
|
|
|
|
| |
llvm-svn: 222479
|
|
|
|
|
|
|
|
|
| |
Running a diff against lldb-x86-register-enums.h and the file
modified in this patch, the two enums were completely identical.
Deleting one of them to reduce code noise.
llvm-svn: 222478
|
|
|
|
|
|
| |
no longer contained a generic lambda.
llvm-svn: 222477
|
|
|
|
|
|
| |
local class inside a template.
llvm-svn: 222476
|
|
|
|
| |
llvm-svn: 222475
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This implements the skeleton of a RegisterContext for Windows.
In particular, this implements support only for x86 general purpose
registers.
After this patch, LLDB on Windows can perform basic debugging
operations in a single-threaded inferior process (breakpoint,
register inspection, frame select, unwinding, etc).
Differential Revision: http://reviews.llvm.org/D6322
Reviewed by: Greg Clayton
llvm-svn: 222474
|
|
|
|
|
|
|
| |
Moving further into the implementor's namespace is good, but now we have
one more name to intercept.
llvm-svn: 222473
|
|
|
|
|
|
|
|
|
|
| |
Code seems cleaner and easier to understand this way
This is basically r222416, after fixes for MSVC lack of standard
support, and a few cleaning (got rid of a warning).
Thanks Nakamura Takumi and Nico Weber for the MSVC fixes.
llvm-svn: 222472
|
|
|
|
|
|
|
|
| |
std::X::swap exception specifications (allowing parsing of non-conforming code
in libstdc++). The old conditions also matched the functions in MSVC's STL,
which were relying on deferred parsing here.
llvm-svn: 222471
|
|
|
|
|
|
| |
No functional changes.
llvm-svn: 222470
|
|
|
|
|
|
| |
No functional changes.
llvm-svn: 222469
|
|
|
|
|
|
| |
No functional changes.
llvm-svn: 222468
|
|
|
|
|
|
| |
No functional changes.
llvm-svn: 222467
|
|
|
|
| |
llvm-svn: 222466
|
|
|
|
|
|
|
|
|
|
|
|
| |
If there is more than one TypoExpr within the expr being transformed and
any but the last TypoExpr seen don't have any viable candidates, the
tree transform will be aborted early and the remaining TypoExprs are
never seen and hence never diagnosed. This adds a simple
RecursiveASTVisitor to find all of the TypoExprs to be diagnosed in the
case where typo correction of the entire expr fails (and the result of
the tree transform is an ExprError).
llvm-svn: 222465
|
|
|
|
|
|
|
|
|
| |
Sema::ActOnIdExpression to use the new functionality.
Among other things, this allows recovery in several cases where it
wasn't possible before (e.g. correcting a mistyped static_cast<>).
llvm-svn: 222464
|
|
|
|
| |
llvm-svn: 222463
|
|
|
|
|
|
|
|
|
|
|
| |
The default handling is extended to properly create member expressions
and Objective-C ivar references.
Also detect and reject cases where multiple corrections have identical
correction distances and are valid, instead of suggesting the first one
that is found.
llvm-svn: 222462
|
|
|
|
| |
llvm-svn: 222461
|
|
|
|
|
|
| |
Also clean up TypoCorrection::setCorrectionRange while we're at it.
llvm-svn: 222460
|
|
|
|
|
|
| |
<rdar://problem/16705325>
llvm-svn: 222459
|
|
|
|
|
|
| |
have a circular dependency.
llvm-svn: 222458
|
|
|
|
| |
llvm-svn: 222457
|
|
|
|
|
|
|
|
|
|
| |
values. Increase the number of bits for SyntaxUsed. Decrease the number of expression arguments allowed by a single bit so that the bit fields continue to add up to 32-bits evenly.
There is no test for this fix because I could find no reasonable way to trigger a visible failure from it.
Thanks to Doug Gregor for spotting this!
llvm-svn: 222456
|
|
|
|
|
|
| |
Patch by Jean-Daniel Dupas
llvm-svn: 222455
|
|
|
|
|
|
| |
now that the legacy JIT has been removed.
llvm-svn: 222453
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Export table entries need to be sorted in ASCII-betical order,
so that the loader can find an entry for a function by binary search.
We sorted the entries by its mangled names. That can be different
from their exported names. As a result, LLD produces incorrect export
table, from which the loader complains that a function that actually
exists in a DLL cannot be found.
This patch fixes that issue.
llvm-svn: 222452
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently LoopUnroll generates a prologue loop before the main loop
body to execute first N%UnrollFactor iterations. Also, this loop is
used if trip-count can overflow - it's determined by a runtime check.
However, we've been mistakenly optimizing this loop to a linear code for
UnrollFactor = 2, not taking into account that it also serves as a safe
version of the loop if its trip-count overflows.
llvm-svn: 222451
|
|
|
|
| |
llvm-svn: 222449
|
|
|
|
|
|
|
|
|
| |
If the template specialization for externally managed sets in
PostOrderIterator call too far out of sync with each other, this unit
test will fail to build. This is especially useful for developers who
may not build Clang (the only in-tree user) every time.
llvm-svn: 222447
|
|
|
|
|
|
|
|
|
| |
po_iterator_storage's insertEdge was updated to reflect the API
changes from many of our insert methods in r222334, however the
template specialization for external storage was not updated. This
updates the specialization.
llvm-svn: 222446
|
|
|
|
|
|
|
|
| |
r222334 updates LLVM data structure's insert API to return a
pair. This change updates PostOrderCFGView accordingly, so that it can
be used interchangably with other sets.
llvm-svn: 222445
|