- Apr 22, 2010
-
-
Devang Patel authored
llvm-svn: 102033
-
- Apr 21, 2010
-
-
Fariborz Jahanian authored
It is ok to have c++-ness inside extern "C" block. Fixes pr6644. llvm-svn: 101948
-
- Apr 20, 2010
-
-
Anders Carlsson authored
llvm-svn: 101921
-
Anders Carlsson authored
Fix a bug which triggered the assertion I added yesterday. Basically, when we initialize the vtable pointer for a virtual base, and there was another path from the most derived class to another base with the same class type, we would use the wrong base. llvm-svn: 101911
-
Chris Lattner authored
This mirror's Dan's patch for llvm-gcc in r97989, and fixes the miscompilation in PR6525. There is some contention over whether this is the right thing to do, but it is the conservative answer and demonstrably fixes a miscompilation. llvm-svn: 101877
-
John McCall authored
actual delete expressions, not just new expressions. llvm-svn: 101861
-
- Apr 19, 2010
-
-
Rafael Espindola authored
If a method is virtual and the class key function is in another file, emit the method as available_externally. Fixes PR6747 llvm-svn: 101757
-
- Apr 18, 2010
-
-
Fariborz Jahanian authored
as they are accessible in static methods in a class local to the same function. Fixes PR6769. llvm-svn: 101756
-
Anders Carlsson authored
Simplify wide bit-field layout in CGRecordLayoutBuilder, and also fix a bug where assigning to a bit-field member would overwrite other parts of the struct. llvm-svn: 101681
-
- Apr 17, 2010
-
-
Anders Carlsson authored
llvm-svn: 101673
-
Anders Carlsson authored
llvm-svn: 101668
-
Anders Carlsson authored
llvm-svn: 101643
-
- Apr 15, 2010
-
-
Ted Kremenek authored
in the original source directory. llvm-svn: 101402
-
Anders Carlsson authored
Split adding the primary virtual base offsets out into a separate pass. This fixes a bug where we would lay out virtual bases in the wrong order. llvm-svn: 101373
-
- Apr 14, 2010
-
-
Fariborz Jahanian authored
blocks. Fixes PR6468. llvm-svn: 101196
-
- Apr 13, 2010
-
-
Devang Patel authored
llvm-svn: 101100
-
- Apr 12, 2010
-
-
Nick Lewycky authored
llvm-svn: 101015
-
Anders Carlsson authored
Fix another bug where we wouldn't generate secondary vtables for construction vtables in some cases. llvm-svn: 100998
-
- Apr 11, 2010
-
-
Anders Carlsson authored
llvm-svn: 100985
-
- Apr 10, 2010
-
-
Anders Carlsson authored
llvm-svn: 100952
-
Anders Carlsson authored
llvm-svn: 100949
-
Anders Carlsson authored
Simplify the virtual base layout code and fix a bug where we wouldn't store the offset for a virtual base. llvm-svn: 100940
-
- Apr 09, 2010
-
-
John McCall authored
just integer-literal expressions with special case implementations in the AST. Fixes rdar://problem/7825453. llvm-svn: 100905
-
John McCall authored
Remove -faccess-control from -cc1; add -fno-access-control. Make the driver pass -fno-access-control by default. Update a bunch of tests to be correct under access control. llvm-svn: 100880
-
- Apr 08, 2010
-
-
Douglas Gregor authored
__cxxabiv1::__fundamental_type_info in every translation unit. Previously, we would perform name lookup for __cxxabiv1::__fundamental_type_info at the end of IRGen for a each translation unit, to determine whether it was present. If so, we we produce type information for all of the fundamental types. However, this name lookup causes PCH deserialization of a significant part of the translation unit, which has a woeful impact on performance. With this change, we now look at each record type after we've generated its vtable to see if it is __cxxabiv1::__fundamental_type_info. If so, we generate type info for all of the fundamental types. This works because __cxxabiv1::__fundamental_type_info should always have a key function (typically the virtual destructor), that will be defined once in the support library. The fundamental type information will end up there. Fixes <rdar://problem/7840011>. llvm-svn: 100772
-
- Apr 04, 2010
-
-
Mon P Wang authored
Reapply patch for adding support for address spaces and added a isVolatile field to memcpy, memmove, and memset. llvm-svn: 100305
-
- Apr 03, 2010
-
-
Rafael Espindola authored
Don't produce a vtable for a class if we have an explicit template instantiation declaration and no key function. We will produce the vtable at the explicit template instantiation. Fixes PR6748 llvm-svn: 100266
-
- Apr 02, 2010
-
-
Douglas Gregor authored
assembly for the global "d7". We were previously testing for alignment 3, which seems to happen for some builders and not for others. I've eliminated the alignment check and added a FIXME to unbreak the buildbots. llvm-svn: 100205
-
Mon P Wang authored
llvm-svn: 100200
-
Douglas Gregor authored
poor (and wrong) approximation of the actual rules governing when to build a copy and when it can be elided. The correct implementation is actually simpler than the approximation. When we only enumerate constructors as part of initialization (e.g., for direct initialization or when we're copying from a class type or one of its derived classes), we don't create a copy. When we enumerate all conversion functions, we do create a copy. Before, we created some extra copies and missed some others. The new test copy-initialization.cpp shows a case where we missed creating a (required, non-elidable) copy as part of a user-defined conversion, which resulted in a miscompile. This commit also fixes PR6757, where the missing copy made us reject well-formed code in the ternary operator. This commit also cleans up our handling of copy elision in the case where we create an extra copy of a temporary object, which became necessary now that we produce the right copies. The code that seeks to find the temporary object being copied has moved into Expr::getTemporaryObject(); it used to have two different not-quite-the-same implementations, one in Sema and one in CodeGen. Note that we still do not attempt to perform the named return value optimization, so we miss copy elisions for return values and throw expressions. llvm-svn: 100196
-
Mon P Wang authored
Reapply patch for adding support for address spaces and added a isVolatile field to memcpy, memmove, and memset. llvm-svn: 100193
-
- Mar 31, 2010
-
-
Douglas Gregor authored
the existing (and already well-tested) linkage computation for types, with minor tweaks for dynamic classes and (pointers to) incomplete types. Fixes PR6597. llvm-svn: 99968
-
John McCall authored
null checks, and make sure we elide null checks when accessing base class members. llvm-svn: 99963
-
Bob Wilson authored
llvm-svn: 99949
-
- Mar 30, 2010
-
-
Mon P Wang authored
llvm-svn: 99930
-
Rafael Espindola authored
class has no key function. Fix PR6738. llvm-svn: 99900
-
Anders Carlsson authored
Use the new function in EmitClassAggrMemberwiseCopy, fixing the same assert as seen in PR6628 but for arrays this time. llvm-svn: 99867
-
Anders Carlsson authored
Handle default arguments when calling copy constructors for bases or members when synthesizing a copy constructor. Fixes PR6628. llvm-svn: 99864
-
Anders Carlsson authored
llvm-svn: 99863
-
Anders Carlsson authored
Flip the switch and use the new vtable layout code for everything. I've verified that this passes a self-host but I'll let the bots self host as well before removing the now dead code. llvm-svn: 99861
-