| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 133144
|
| |
|
|
|
|
|
|
|
|
| |
Language-design credit goes to a lot of people, but I particularly want
to single out Blaine Garst and Patrick Beard for their contributions.
Compiler implementation credit goes to Argyrios, Doug, Fariborz, and myself,
in no particular order.
llvm-svn: 133103
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Type::isUnsignedIntegerOrEnumerationType(), which are like
Type::isSignedIntegerType() and Type::isUnsignedIntegerType() but also
consider the underlying type of a C++0x scoped enumeration type.
Audited all callers to the existing functions, switching those that
need to also handle scoped enumeration types (e.g., those that deal
with constant values) over to the new functions. Fixes PR9923 /
<rdar://problem/9447851>.
llvm-svn: 131735
|
| |
|
|
|
|
|
|
|
| |
operators; their semantics are guaranteed by the language.
If someone wants to argue that freestanding compiles shouldn't recognize
this, I might be convinceable.
llvm-svn: 131395
|
| |
|
|
|
|
|
| |
It can be larger, it can be smaller, it can be signed, whatever. Handle
all the crazy cases with grace and spirit.
llvm-svn: 131378
|
| |
|
|
|
|
|
| |
modify the semantics slightly to accomodate default constructors (I
hope).
llvm-svn: 131087
|
| |
|
|
|
|
| |
function in CGClass.cpp
llvm-svn: 131075
|
| |
|
|
| |
llvm-svn: 131019
|
| |
|
|
|
|
| |
Material bugfixes to come this afternoon.
llvm-svn: 130782
|
| |
|
|
|
|
| |
eventually gain more members). Working towards modifying call emission to avoid unnecessary copies.
llvm-svn: 130700
|
| |
|
|
|
|
| |
change.
llvm-svn: 130699
|
| |
|
|
|
|
|
|
|
|
| |
As far as I know, this implementation is complete but might be missing a
few optimizations. Exceptions and virtual bases are handled correctly.
Because I'm an optimist, the web page has appropriately been updated. If
I'm wrong, feel free to downgrade its support categories.
llvm-svn: 130642
|
| |
|
|
|
|
|
| |
-C++ objects with user-declared constructor don't need zero'ing.
-We can zero-initialize arrays of C++ objects in "bulk" now, in which case don't zero-initialize each object again.
llvm-svn: 130453
|
| |
|
|
|
|
|
|
|
|
|
| |
bound
member function, i.e. something of the form 'x.f' where 'f' is a non-static
member function. Diagnose this in the general case. Some of the new diagnostics
are probably worse than the old ones, but we now get this right much more
universally, and there's certainly room for improvement in the diagnostics.
llvm-svn: 130239
|
| |
|
|
| |
llvm-svn: 129682
|
| |
|
|
| |
llvm-svn: 129424
|
| |
|
|
|
|
| |
calling the __cxa_bad_typeid function. Fixes PR7400.
llvm-svn: 129273
|
| |
|
|
| |
llvm-svn: 129269
|
| |
|
|
|
|
|
| |
CodeGenFunction::EmitDynamicCast always return null or throw a bad_cast
exception.
llvm-svn: 129264
|
| |
|
|
| |
llvm-svn: 129262
|
| |
|
|
|
|
| |
functionality change.
llvm-svn: 129261
|
| |
|
|
|
|
| |
devirtualized. Fixes the second half of PR9660.
llvm-svn: 129253
|
| |
|
|
|
|
| |
check is triggered appropriately. Reported on cfe-dev.
llvm-svn: 129231
|
| |
|
|
|
|
| |
PHINode::Create() giving the (known or expected) number of operands.
llvm-svn: 128538
|
| |
|
|
|
|
| |
noexcept specifiers, unique FunctionProtoTypes with a ContextualFoldingSet, as suggested by John McCall.
llvm-svn: 127568
|
| |
|
|
|
|
|
|
| |
Change the interface to expose the new information and deal with the enormous fallout.
Introduce the new ExceptionSpecificationType value EST_DynamicNone to more easily deal with empty throw specifications.
Update the tests for noexcept and fix the various bugs uncovered, such as lack of tentative parsing support.
llvm-svn: 127537
|
| |
|
|
| |
llvm-svn: 127494
|
| |
|
|
|
|
| |
trivial to check this. Adjust for style.
llvm-svn: 127151
|
| |
|
|
|
|
|
|
| |
allocation and therefore requires a null-check. We were doing that, but
we weren't treating the new-initializer as being conditionally executed,
which means it was possible to get ill-formed IR as in PR9298.
llvm-svn: 127147
|
| |
|
|
|
|
| |
This reverts commit 126863.
llvm-svn: 126886
|
| |
|
|
| |
llvm-svn: 126863
|
| |
|
|
|
|
|
|
| |
Block{Function,Module} base class. Minor other refactorings.
Fixed a few address-space bugs while I was there.
llvm-svn: 125085
|
| |
|
|
| |
llvm-svn: 124807
|
| |
|
|
| |
llvm-svn: 124701
|
| |
|
|
|
|
| |
all casts. We can only ignore derived-to-base and no-op casts. Fixes selfhost.
llvm-svn: 124528
|
| |
|
|
|
|
| |
class is marked 'final', we can devirtualize the call.
llvm-svn: 124524
|
| |
|
|
|
|
|
| |
indirect vf calls and addition of extra entry
at bottom of vtbls.
llvm-svn: 124507
|
| |
|
|
|
|
| |
Pure motion.
llvm-svn: 124484
|
| |
|
|
|
|
| |
for CodeGen's RValue type.
llvm-svn: 124483
|
| |
|
|
|
|
|
|
|
| |
fixing a crash which probably nobody was ever going to see. In doing so,
fix a horrendous number of problems with the conditional-cleanups code.
Also, make conditional cleanups re-use the cleanup's activation variable,
which avoids some unfortunate repetitiveness.
llvm-svn: 124481
|
| |
|
|
|
|
|
|
|
| |
deallocation function has a two-argument form. Store the result of this
check in new[] and delete[] nodes.
Fixes rdar://problem/8913519
llvm-svn: 124373
|
| |
|
|
| |
llvm-svn: 124122
|
| |
|
|
| |
llvm-svn: 124083
|
| |
|
|
|
|
| |
Improve on test case. Per Doug's comment. wip.
llvm-svn: 123954
|
| |
|
|
|
|
| |
vf calls, be made indirect. This patch is towards that goal.
llvm-svn: 123922
|
| |
|
|
|
|
| |
counterparts where char units are needed.
llvm-svn: 123805
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For example:
class A{
public:
A& operator=(const A& that) {
if (this != &that) {
this->A::~A();
this->A::A(that); // <=== explicit constructor call.
}
return *this;
}
};
More work will be needed to support an explicit call to a template constructor.
llvm-svn: 123735
|
| |
|
|
| |
llvm-svn: 122634
|
| |
|
|
|
|
|
|
| |
zextOrTrunc(), and APSInt methods extend(), extOrTrunc() and new method
trunc(), to be const and to return a new value instead of modifying the
object in place.
llvm-svn: 121121
|
| |
|
|
|
|
| |
reason this is limited to C++, and it's certainly not limited to temporaries.
llvm-svn: 120996
|