| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive.
llvm-svn: 166280
|
| |
|
|
|
|
| |
const non-volatile global does.
llvm-svn: 166269
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
constructors.
When I first moved regparm support to TargetInfo.cpp I tried to isolate it
in classifyArgumentTypeWithReg, but it is actually a lot easier to flip the
code around and check for regparm at the end of the decision tree.
Without this refactoring classifyArgumentTypeWithReg would have to duplicate
the logic about when to use non-byval indirect arguments.
llvm-svn: 166266
|
| |
|
|
|
|
|
|
|
|
| |
are no known current users of column info. Robustify and fix up
a few tests in the process. Reduces the size of debug information
by a small amount.
Part of PR14106
llvm-svn: 166236
|
| |
|
|
|
|
| |
namespace.
llvm-svn: 166194
|
| |
|
|
|
|
| |
expressions, not *any* typeid on a polymorphic class type.
llvm-svn: 166156
|
| |
|
|
|
|
| |
debug info.
llvm-svn: 166109
|
| |
|
|
|
|
|
|
| |
This is consistent/interoperable with GCC 4.7 (& __cxa_deleted_function isn't
present in 4.4 - not sure when it got added, but you'll need something with
that function available for this to work).
llvm-svn: 166069
|
| |
|
|
|
|
| |
(original functionality committed in r99807, refactored in r160373)
llvm-svn: 166059
|
| |
|
|
| |
llvm-svn: 166056
|
| |
|
|
|
|
| |
fails to return a value, to make debugging this issue easier.
llvm-svn: 165914
|
| |
|
|
|
|
| |
Grosser.
llvm-svn: 165720
|
| |
|
|
| |
llvm-svn: 165712
|
| |
|
|
| |
llvm-svn: 165710
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
AAPCS ABI Section 7.1.4 [1] specifies that va_list
should be defined as struct __va_list { void *__ap;};
And in C++, it is defined in namespace std.
[1] http://infocenter.arm.com/help/topic
/com.arm.doc.ihi0042d/IHI0042D_aapcs.pdf
Patch by Weiming Zhao.
llvm-svn: 165609
|
| |
|
|
|
|
| |
of the checks fails.
llvm-svn: 165536
|
| |
|
|
|
|
| |
PR14029, clang part.
llvm-svn: 165289
|
| |
|
|
|
|
|
|
| |
- outside C++, return undef (behavior is not undefined unless the value is used)
- in C++, with -fcatch-undefined-behavior, perform an appropriate trap
- in C++, produce an 'unreachable' (behavior is undefined immediately)
llvm-svn: 165273
|
| |
|
|
|
|
| |
Currently, it's ignored if the number of set bits isn't divisible by 4.
llvm-svn: 165116
|
| |
|
|
|
|
|
|
| |
is allowed or ignored with warning. This allows for correct name mangling for x64 targets on Windows, which in turn allows for linking against the Win32 APIs.
Fixes PR13782
llvm-svn: 165015
|
| |
|
|
|
|
|
| |
Also move one of them from grep to FileCheck.
Patch from Joey Gouly <joey.gouly@arm.com>!
llvm-svn: 164929
|
| |
|
|
|
|
|
|
|
|
| |
or move assign operator.
This fixes a regression from r162254, the optimizer has problems reasoning
about the smaller memcpy as it's often not safe to widen a store but making it
smaller is.
llvm-svn: 164917
|
| |
|
|
|
|
|
| |
observe their addresses (taking their address gives the vtable slot) so we are
free to merge their definitions.
llvm-svn: 164864
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
typeid (and a couple other non-standard places where we can transform an
unevaluated expression into an evaluated expression) is special
because it introduces an an expression evaluation context,
which conflicts with the mechanism to compute the current
lambda mangling context. PR12123.
I would appreciate if someone would double-check that we get the mangling
correct with this patch.
llvm-svn: 164658
|
| |
|
|
|
|
|
|
|
|
|
|
| |
enough information so we can mangle them correctly in cases involving
dependent parameter types. (This specifically impacts cases involving
null pointers and cases involving parameters of reference type.)
Fix the mangler to use this information instead of trying to scavenge
it out of the parameter declaration.
<rdar://problem/12296776>.
llvm-svn: 164656
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
be sure to delete the complete object pointer, not the original
pointer. This is necessary if the base being deleted is at a
non-zero offset in the complete object. This is only required
for objects with virtual destructors because deleting an object
via a base-class subobject when the base does not have a virtual
destructor is undefined behavior.
Noticed while reviewing the last four years of cxx-abi-dev
activity.
llvm-svn: 164597
|
| |
|
|
| |
llvm-svn: 164594
|
| |
|
|
| |
llvm-svn: 164593
|
| |
|
|
| |
llvm-svn: 164592
|
| |
|
|
|
|
| |
Patch by Andy Gibbs!
llvm-svn: 164590
|
| |
|
|
|
|
|
|
|
|
|
|
| |
into the enclosing scope; this is a more accurate model but is
(I believe) unnecessary in my test case due to other flaws.
However, one of those flaws is now intentional: blocks which
appear in return statements can be trivially observed to not
extend in lifetime past the return, and so we can allow a jump
past them. Do the necessary magic in IR-generation to make
this work.
llvm-svn: 164589
|
| |
|
|
|
|
|
| |
attributes like uwtable. Without uwtable a stack unwinder would be unable
to go past the thunks.
llvm-svn: 164411
|
| |
|
|
| |
llvm-svn: 164253
|
| |
|
|
|
|
| |
Patch by Joey Gouly.
llvm-svn: 164239
|
| |
|
|
| |
llvm-svn: 164187
|
| |
|
|
|
|
| |
both a virtual and a non-virtual offset. PR13832.
llvm-svn: 163866
|
| |
|
|
| |
llvm-svn: 163846
|
| |
|
|
| |
llvm-svn: 163829
|
| |
|
|
|
|
|
|
|
|
|
| |
Make clang emit a flag for DW_AT_object_pointer for the artificial
args where it should (implicit first arguments). FileCheck-ize a
test as well and update tests to take into account the object
pointer flag.
rdar://9797999
llvm-svn: 163755
|
| |
|
|
|
|
| |
this should be done on the subprogram, not the variable.
llvm-svn: 163733
|
| |
|
|
|
|
|
|
| |
LLP64-incompatible tests.
I think some of them could be rewritten to fit also LLP64.
llvm-svn: 163699
|
| |
|
|
|
|
|
|
|
|
| |
args where it should (implicit first arguments). FileCheck-ize a
test as well and update tests to take into account the object
pointer flag.
rdar://9797999
llvm-svn: 163668
|
| |
|
|
|
|
| |
Patch by David Tweed, review by myself and John McCall.
llvm-svn: 163564
|
| |
|
|
| |
llvm-svn: 163111
|
| |
|
|
|
|
| |
"-cxx-abi microsoft"
llvm-svn: 163110
|
| |
|
|
|
|
|
|
|
| |
(__builtin_* etc.) so that it isn't possible to take their address.
Specifically, introduce a new type to represent a reference to a builtin
function, and a new cast kind to convert it to a function pointer in the
operand of a call. Fixes PR13195.
llvm-svn: 162962
|
| |
|
|
|
|
| |
array new with a non-trivial constructor. Pointed out in PR13380.
llvm-svn: 162643
|
| |
|
|
|
|
| |
Patch by Timur Iskhodzhanov!
llvm-svn: 162639
|
| |
|
|
|
|
| |
Patch by Timur Iskhodzhanov!
llvm-svn: 162638
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
by this mode, and also check for signed left shift overflow. The rules for the
latter are a little subtle:
* neither C89 nor C++98 specify the behavior of a signed left shift at all
* in C99 and C11, shifting a 1 bit into the sign bit has undefined behavior
* in C++11, with core issue 1457, shifting a 1 bit *out* of the sign bit has
undefined behavior
As of this change, we use the C99 rules for all C language variants, and the
C++11 rules for all C++ language variants. Once we have individual
-fcatch-undefined-behavior= flags, this should be revisited.
llvm-svn: 162634
|