summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/copy-constructor-synthesis.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Test case updates for explicit type parameter to the gep operatorDavid Blaikie2015-03-131-1/+1
| | | | llvm-svn: 232187
* Update Clang tests to handle explicitly typed load changes in LLVM.David Blaikie2015-02-271-4/+4
| | | | llvm-svn: 230795
* Update Clang tests to handle explicitly typed gep changes in LLVM.David Blaikie2015-02-271-4/+4
| | | | llvm-svn: 230783
* Emit DeferredDeclsToEmit in a DFS order.Rafael Espindola2015-01-221-12/+12
| | | | | | | | | | | | | | Currently we emit DeferredDeclsToEmit in reverse order. This patch changes that. The advantages of the change are that * The output order is a bit closer to the source order. The change to test/CodeGenCXX/pod-member-memcpys.cpp is a good example. * If we decide to deffer more, it will not cause as large changes in the estcases as it would without this patch. llvm-svn: 226751
* Cast vtable address points to i32 (...)** to enable more globaloptReid Kleckner2014-12-031-2/+2
| | | | | | | | | | | | We currently use i32 (...)** as the type of the vptr field in the LLVM struct type. LLVM's GlobalOpt prefers any bitcasts to be on the side of the data being stored rather than on the pointer being stored to. Reviewers: majnemer Differential Revision: http://reviews.llvm.org/D5916 llvm-svn: 223267
* Mark C++ reference parameters as dereferenceableHal Finkel2014-07-181-3/+3
| | | | | | | | | | | | | | Because references must be initialized using some evaluated expression, they must point to something, and a callee can assume the reference parameter is dereferenceable. Taking advantage of a new attribute just added to LLVM, mark them as such. Because dereferenceability in addrspace(0) implies nonnull in the backend, we don't need both attributes. However, we need to know the size of the object to use the dereferenceable attribute, so for incomplete types we still emit only nonnull. llvm-svn: 213386
* Add 'nonnull' parameter or return attribute when producing an llvm pointer ↵Nick Lewycky2014-05-281-3/+3
| | | | | | type in a function type where the C++ type is a reference. Update the tests. llvm-svn: 209723
* Complete Rewrite of CGRecordLayoutBuilderWarren Hunt2014-02-211-8/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CGRecordLayoutBuilder was aging, complex, multi-pass, and shows signs of existing before ASTRecordLayoutBuilder. It redundantly performed many layout operations that are now performed by ASTRecordLayoutBuilder and asserted that the results were the same. With the addition of support for the MS-ABI, such as placement of vbptrs, vtordisps, different bitfield layout and a variety of other features, CGRecordLayoutBuilder was growing unwieldy in its redundancy. This patch re-architects CGRecordLayoutBuilder to not perform any redundant layout but rather, as directly as possible, lower an ASTRecordLayout to an llvm::type. The new architecture is significantly smaller and simpler than the CGRecordLayoutBuilder and contains fewer ABI-specific code paths. It's also one pass. The architecture of the new system is described in the comments. For the most part, the new system simply takes all of the fields and bases from an ASTRecordLayout, sorts them, inserts padding and dumps a record. Bitfields, unions and primary virtual bases make this process a bit more complicated. See the inline comments. In addition, this patch updates a few lit tests due to the fact that the new system computes more accurate llvm types than CGRecordLayoutBuilder. Each change is commented individually in the review. Differential Revision: http://llvm-reviews.chandlerc.com/D2795 llvm-svn: 201907
* CHECK-LABEL-ify some code gen tests to improve diagnostic experience when ↵Stephen Lin2013-08-151-3/+3
| | | | | | tests fail. llvm-svn: 188447
* Weaken an assertion in memcpyization to account forJohn McCall2013-05-071-0/+41
| | | | | | | | | | | unnamed bitfields. Unnamed bitfields won't have an explicit copy operation in the AST, which breaks the strong form of the invariant. rdar://13816940 llvm-svn: 181289
* Move unnamed_addr after the function arguments on Sabre's request.Rafael Espindola2011-01-251-2/+2
| | | | llvm-svn: 124210
* Add unnamed_addr to constructors and destructors.Rafael Espindola2011-01-111-2/+2
| | | | llvm-svn: 123197
* Use the new function in EmitClassAggrMemberwiseCopy, fixing the same assert ↵Anders Carlsson2010-03-301-0/+1
| | | | | | as seen in PR6628 but for arrays this time. llvm-svn: 99867
* Handle default arguments when calling copy constructors for bases or members ↵Anders Carlsson2010-03-301-0/+43
| | | | | | when synthesizing a copy constructor. Fixes PR6628. llvm-svn: 99864
* Change a test to FileCheck bitcode instead of assembler.Anders Carlsson2010-03-301-12/+2
| | | | llvm-svn: 99863
* Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'.Daniel Dunbar2009-12-151-2/+2
| | | | | | | | | - This is designed to make it obvious that %clang_cc1 is a "test variable" which is substituted. It is '%clang_cc1' instead of '%clang -cc1' because it can be useful to redefine what gets run as 'clang -cc1' (for example, to set a default target). llvm-svn: 91446
* Handle references correctly when synthesizing copy constructors.Anders Carlsson2009-11-241-0/+11
| | | | | | | | | | | With this change, the clang-on-clang test result is now Expected Passes : 224 Unexpected Failures: 37 Which means that we can compile over 80% of clang with clang! :) llvm-svn: 89799
* Implement a few more cases for copy constructor synthesis.Eli Friedman2009-11-161-0/+2
| | | | llvm-svn: 88971
* Remove RUN: true lines.Daniel Dunbar2009-11-081-1/+0
| | | | llvm-svn: 86432
* Eliminate &&s in tests.Daniel Dunbar2009-11-081-4/+4
| | | | | | - 'for i in $(find . -type f); do sed -e 's#\(RUN:.*[^ ]\) *&& *$#\1#g' $i | FileUpdate $i; done', for the curious. llvm-svn: 86430
* Mangle record types as decls.Anders Carlsson2009-09-261-6/+6
| | | | llvm-svn: 82843
* Remove tabs, and whitespace cleanups.Mike Stump2009-09-091-39/+40
| | | | llvm-svn: 81346
* Patch to provide ir-gen support in copying array membersFariborz Jahanian2009-08-211-0/+34
| | | | | | | when synthesizing a copy constructor. Arrays's base element may have a trivial or non-trivial copy constructor. llvm-svn: 79653
* ir-gen support for anonymous union data memberFariborz Jahanian2009-08-111-1/+15
| | | | | | | copying in copy constructors and used in default constructor's initializer list. llvm-svn: 78700
* ir-gen for generating copying of scalar data members inFariborz Jahanian2009-08-101-2/+11
| | | | | | a synthesized copy constructor. llvm-svn: 78580
* Fixed a ir-gen bug in synthesizing copy constructors.Fariborz Jahanian2009-08-101-5/+2
| | | | llvm-svn: 78570
* ir-gen for initialization, in synthesize copy constructor, Fariborz Jahanian2009-08-081-0/+55
of base/field which have trivial copy constructor. llvm-svn: 78516
OpenPOWER on IntegriCloud