summaryrefslogtreecommitdiffstats
path: root/clang/test/Modules/cxx-irgen.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Emit DeferredDeclsToEmit in a DFS order.Rafael Espindola2015-01-221-11/+11
| | | | | | | | | | | | | | 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
* clang/test/Modules/cxx-irgen.cpp: Let it tolerant of x86_thiscallcc.NAKAMURA Takumi2014-08-141-4/+4
| | | | llvm-svn: 215607
* [modules] Fix a rejects-valid resulting from emitting an inline functionRichard Smith2014-08-131-0/+17
| | | | | | | | recursively within the emission of another inline function. This ultimately led to us emitting the same inline function definition twice, which we then rejected because we believed we had a mangled name conflict. llvm-svn: 215579
* [modules] When emitting an update record containing the body of a destructor,Richard Smith2014-08-071-0/+9
| | | | | | | | | also emit the updated 'operator delete' looked up for that destructor. Switch from UpdateDecl to an actual update record when this happens due to implicitly defining a special member function and unify this code path and the one for instantiating a function definition. llvm-svn: 215132
* [modules] Remove IRGen special case for emitting implicit special members ifRichard Smith2014-08-011-1/+1
| | | | | | | | | | | they're somehow missing a body. Looks like this was left behind when the loop was generalized, and it's not been problematic before because without modules, a used, implicit special member function declaration must be a definition. This was resulting in us trying to emit a constructor declaration rather than a definition, and producing a constructor missing its member initializers. llvm-svn: 214473
* [modules] Maintain an AST invariant across module load/save: if any declarationRichard Smith2014-07-311-1/+29
| | | | | | | | | | | | | | | of a function has a resolved exception specification, then all declarations of the function do. We should probably improve the AST representation to make this implicit (perhaps only store the exception specification on the canonical declaration), but this fixes things for now. The testcase for this (which used to assert) also exposes the actual bug I was trying to reduce here: we sometimes fail to emit the body of an imported special member function definition. Fix for that to follow. llvm-svn: 214458
* allow optional signext attributeWill Schmidt2014-06-021-1/+1
| | | | | | | Allow the tests to succeed with tne signext (or other) attribute is present. The attributes show up for Power, but not for x86*, so need to be appropriately wildcarded. llvm-svn: 210050
* When a module completes the definition of a class template specialization ↵Richard Smith2014-04-191-0/+4
| | | | | | imported from another module, emit an update record, rather than using the broken decl rewriting mechanism. If multiple modules do this, merge the definitions together, much as we would if they were separate declarations. llvm-svn: 206680
* Fix test/Modules/cxx-irgen.cpp for PPC64Hal Finkel2014-04-121-3/+3
| | | | | | Target ABI code might add signext to the return types. llvm-svn: 206107
* If an update record makes a declaration interesting, pass it to the consumer.Richard Smith2014-03-231-3/+6
| | | | llvm-svn: 204550
* Emit an update record if we instantiate the definition of a function templateRichard Smith2014-03-221-0/+15
specialization from a module. (This can also happen for function template specializations in PCHs if they're instantiated eagerly, because they're constexpr or have a deduced return type.) llvm-svn: 204547
OpenPOWER on IntegriCloud