History log of /external/clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
ef8225444452a1486bd721f3285301fe84643b00 21-Jul-2014 Stephen Hines <srhines@google.com> Update Clang for rebase to r212749.

This also fixes a small issue with arm_neon.h not being generated always.

Includes a cherry-pick of:
r213450 - fixes mac-specific header issue
r213126 - removes a default -Bsymbolic on Android

Change-Id: I2a790a0f5d3b2aab11de596fc3a74e7cbc99081d
/external/clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
6bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89 29-May-2014 Stephen Hines <srhines@google.com> Update Clang for 3.5 rebase (r209713).

Change-Id: I8c9133b0f8f776dc915f270b60f94962e771bc83
/external/clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
93ab6bf534fb6c26563c00f28a8fc5581bb71dfd 15-Aug-2013 Stephen Lin <stephenwlin@gmail.com> CHECK-LABEL-ify some code gen tests to improve diagnostic experience when tests fail.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188447 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
5771aab8027e317de1e3f2f67b5dae67b3d895f8 28-Jun-2013 Richard Smith <richard-llvm@metafoo.co.uk> Fix nested lifetime extension when a std::initializer_list member is
initialized during aggregate initialization of the surrounding structure.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185117 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
3282b84296dba58e811741b63e4429980a98df8b 14-Jun-2013 Richard Smith <richard-llvm@metafoo.co.uk> Emit initializers for static-storage-duration temporaries as constants where
possible.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183967 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
7b7db26d78509c0692d0000bbed1b0cf5e18ece8 13-Jun-2013 Richard Smith <richard-llvm@metafoo.co.uk> Clean up test to appease NDEBUG builds.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183924 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
7c3e615f01e8f9f587315800fdaf2305ed824568 13-Jun-2013 Richard Smith <richard-llvm@metafoo.co.uk> PR12086, PR15117

Introduce CXXStdInitializerListExpr node, representing the implicit
construction of a std::initializer_list<T> object from its underlying array.
The AST representation of such an expression goes from an InitListExpr with a
flag set, to a CXXStdInitializerListExpr containing a MaterializeTemporaryExpr
containing an InitListExpr (possibly wrapped in a CXXBindTemporaryExpr).

This more detailed representation has several advantages, the most important of
which is that the new MaterializeTemporaryExpr allows us to directly model
lifetime extension of the underlying temporary array. Using that, this patch
*drastically* simplifies the IR generation of this construct, provides IR
generation support for nested global initializer_list objects, fixes several
bugs where the destructors for the underlying array would accidentally not get
invoked, and provides constant expression evaluation support for
std::initializer_list objects.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183872 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
211c8ddb5b500ed84833751363d0cfe1115f4dd3 05-Jun-2013 Richard Smith <richard-llvm@metafoo.co.uk> Model temporary lifetime-extension explicitly in the AST. Use this model to
handle temporaries which have been lifetime-extended to static storage duration
within constant expressions. This correctly handles nested lifetime extension
(through reference members of aggregates in aggregate initializers) but
non-constant-expression emission hasn't yet been updated to do the same.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183283 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
e69fb2043519d8f36314dd5dd78bb7638c6140f6 23-May-2013 Richard Smith <richard-llvm@metafoo.co.uk> Fix assert on temporary std::initializer_list.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182615 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
04e517650569598e847c2ab609672e6df93effe5 15-Apr-2013 Richard Smith <richard-llvm@metafoo.co.uk> CodeGen support for function-local static thread_local variables with
non-constant constructors or non-trivial destructors. Plus bugfixes for
thread_local references bound to temporaries (the temporaries themselves are
lifetime-extended to become thread_local), and the corresponding case for
std::initializer_list.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179496 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
29a11f45849aa87959e780abb0014a1876e0b39e 06-Apr-2013 Douglas Gregor <dgregor@apple.com> <rdar://problem/13325066> Destroy std::initializer_list temporaries whose lifetime has been extended by reference binding.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178939 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
1b76fbc5b711efc03c1fe924db6756ec1590577a 11-Sep-2012 David Blaikie <dblaikie@gmail.com> Provide fixed target triples to make test results consistent across ARM hosts.

Patch by David Tweed, review by myself and John McCall.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163564 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
2835745a451002798fed9800aeb19277f6a8fcb3 05-Mar-2012 Sebastian Redl <sebastian.redl@getdesigned.at> If the element type of an initializer list has a destructor, make sure we check it. Fixes PR12178.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152048 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
19b1a6eb2c90fab7cefe74bea5b6de490b65ac9d 25-Feb-2012 Sebastian Redl <sebastian.redl@getdesigned.at> CodeGen support for global variables of type std::initializer_list<X>.

This emits a backing array with internal linkage and fills it with data,
then has the initializer_list point at the array. Dynamic initialization
and global destructors are correctly supported.

What doesn't work is nested initializer_lists. I have no idea how to
get them to work, either. However, these should be very rare, and so
I'll just call it a known bug and declare generalized initializers
DONE!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151457 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
4b45d7ff9c45ecf6126c4bb939057687483a9726 19-Feb-2012 Benjamin Kramer <benny.kra@googlemail.com> Harden test against for operator new(unsigned int).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150932 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
972edf0534d8a50f87fac1d0ff34eb22f593df11 19-Feb-2012 Sebastian Redl <sebastian.redl@getdesigned.at> Make heap-allocation of std::initializer_list 'work'.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150931 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
924db71fc8f6076c532c8c2ae93acc7f477452c8 19-Feb-2012 Sebastian Redl <sebastian.redl@getdesigned.at> Make std::initializer_list member initializers 'work'.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150930 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
af130fd78267ee9e2395b758a7d827b07ce317a0 19-Feb-2012 Sebastian Redl <sebastian.redl@getdesigned.at> Get recursive initializer lists to work and add a test. Codegen of std::initializer_list is now complete. Onward to array new.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150926 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
bac5cf4110c1c9ba0992fad4fd9f66cedc27f3da 19-Feb-2012 Sebastian Redl <sebastian.redl@getdesigned.at> Add a testcase for using objects with list-constructors, and fix a Sema crash by repeating an old hack.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150925 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
25e640a6e11f455b9c12aa5f724f7d50d9174c9c 19-Feb-2012 Sebastian Redl <sebastian.redl@getdesigned.at> Add a testcase to show that temporaries from the initializer list are destroyed correctly.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150924 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
32cf1f27ae8620e7b79bb4e81a067187c0aab7ae 17-Feb-2012 Sebastian Redl <sebastian.redl@getdesigned.at> Basic code generation support for std::initializer_list.

We now generate temporary arrays to back std::initializer_list objects
initialized with braces. The initializer_list is then made to point at
the array. We support both ptr+size and start+end forms, although
the latter is untested.

Array lifetime is correct for temporary std::initializer_lists (e.g.
call arguments) and local variables. It is untested for new expressions
and member initializers.

Things left to do:
Massively increase the amount of testing. I need to write tests for
start+end init lists, temporary objects created as a side effect of
initializing init list objects, new expressions, member initialization,
creation of temporary objects (e.g. std::vector) for initializer lists,
and probably more.
Get lifetime "right" for member initializers and new expressions. Not
that either are very useful.
Implement list-initialization of array new expressions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150803 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp