History log of /external/clang/test/SemaCXX/constant-expression-cxx1y.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
4967a710c84587c654b56c828382219c3937dacb 20-Sep-2016 Pirama Arumuga Nainar <pirama@google.com> Update aosp/master Clang for rebase to r275480

Bug: http://b/31320715

This merges commit ac9cc4764cf47a6c3f031687d8592e080c9f5001 from
aosp/dev.

Test: Build AOSP and run RenderScript tests (host tests for slang and
libbcc, RsTest, CTS)

Change-Id: Ic2875e5c3673c83448cd7d1013861e42947b1b55
/external/clang/test/SemaCXX/constant-expression-cxx1y.cpp
87d948ecccffea9e9e37d0d053b246e2d6d6c47b 04-Mar-2016 Pirama Arumuga Nainar <pirama@google.com> Update aosp/master clang for rebase to r256229

http://b/26987366

Change-Id: I5d349c9843ea5c24d6e455956f8a446393b6873d
/external/clang/test/SemaCXX/constant-expression-cxx1y.cpp
176edba5311f6eff0cad2631449885ddf4fbc9ea 01-Dec-2014 Stephen Hines <srhines@google.com> Update aosp/master Clang for rebase to r222490.

Change-Id: Ic557ac55e97fbf6ee08771c7b7c3594777b0aefd
/external/clang/test/SemaCXX/constant-expression-cxx1y.cpp
f72bc468e54819393c1805f19cbf353061b4c0ec 15-Nov-2013 Richard Smith <richard-llvm@metafoo.co.uk> Don't reject dependent range-based for loops in constexpr functions. The loop
variable isn't really uninitialized, it's just not initialized yet.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194767 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/constant-expression-cxx1y.cpp
9aebdc94d819e8a537030efc70567d585382ecf9 07-Nov-2013 Richard Smith <richard-llvm@metafoo.co.uk> PR17615: A delegating constructor initializer is a full-expression. Don't
forget to clean up temporaries at the end of it.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194213 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/constant-expression-cxx1y.cpp
9a9ca98d6463530384aa12685034899c4cc8733d 06-Nov-2013 Richard Smith <richard-llvm@metafoo.co.uk> More constant evaluation cleanup, and fix an issue where we'd override an
earlier 'non-constant' diagnostic with a later one if the earlier one was from
a side-effect we thought we could evaluate past.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194117 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/constant-expression-cxx1y.cpp
3835a4ef050da466038844274d79f1fc9d77c0f1 06-Aug-2013 Richard Smith <richard-llvm@metafoo.co.uk> PR16755: When initializing or modifying a bitfield member in a constant
expression, truncate the stored value to the size of the bitfield.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187782 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/constant-expression-cxx1y.cpp
03ce5f8c68f55405db6001e82bdb18581d0dadce 24-Jul-2013 Richard Smith <richard-llvm@metafoo.co.uk> C++1y: track object lifetime during constexpr evaluation, and don't allow
objects to be used once their lifetimes end. This completes the C++1y
constexpr extensions.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187025 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/constant-expression-cxx1y.cpp
db2fe739e5aac227d85d149efc9036696997a26f 25-Jun-2013 Richard Smith <richard-llvm@metafoo.co.uk> More of N3652: don't add an implicit 'const' to 'constexpr' member functions when checking for overloads in C++1y.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184865 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/constant-expression-cxx1y.cpp
37a84f653c196aa0b73fad96707175a62dcb6a12 20-Jun-2013 Richard Smith <richard-llvm@metafoo.co.uk> PR16377: Allow evaluation of statement expressions in constant evaluation,
why not. Apparently GCC supports this.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184396 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/constant-expression-cxx1y.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/SemaCXX/constant-expression-cxx1y.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/SemaCXX/constant-expression-cxx1y.cpp
bdaeaed3e3293f1915cdf336f406d4d391331039 22-May-2013 Richard Smith <richard-llvm@metafoo.co.uk> PR16090: C++1y: treat undeduced 'auto' as a literal type, so that constexpr
function templates can use it as a return type.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182433 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/constant-expression-cxx1y.cpp
7247c88d1e41514a41085f83ebf03dd5220e054a 15-May-2013 David Blaikie <dblaikie@gmail.com> Use only explicit bool conversion operator

The most common (non-buggy) case are where such objects are used as
return expressions in bool-returning functions or as boolean function
arguments. In those cases I've used (& added if necessary) a named
function to provide the equivalent (or sometimes negative, depending on
convenient wording) test.

DiagnosticBuilder kept its implicit conversion operator owing to the
prevalent use of it in return statements.

One bug was found in ExprConstant.cpp involving a comparison of two
PointerUnions (PointerUnion did not previously have an operator==, so
instead both operands were converted to bool & then compared). A test
is included in test/SemaCXX/constant-expression-cxx1y.cpp for the fix
(adding operator== to PointerUnion in LLVM).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181869 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/constant-expression-cxx1y.cpp
284b3cbfd1cd5b6585437fbb8b95fe136f273efb 12-May-2013 Richard Smith <richard-llvm@metafoo.co.uk> C++1y: support for 'switch' statements in constexpr functions. This is somewhat
inefficient; we perform a linear scan of switch labels to find the one matching
the condition, and then walk the body looking for that label. Both parts should
be straightforward to optimize.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181671 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/constant-expression-cxx1y.cpp
a49a7fe2a7c1881402be25ca9124d3883637198f 08-May-2013 Richard Smith <richard-llvm@metafoo.co.uk> C++1y constant expression evaluation: compound assignment support for floating-point and pointer types.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181376 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/constant-expression-cxx1y.cpp
d20afcbe94f0daed15d040d98d2aa8ef8ed368e4 07-May-2013 Richard Smith <richard-llvm@metafoo.co.uk> C++1y constant expression evaluation: support for compound assignments on integers.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181287 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/constant-expression-cxx1y.cpp
a8942d7686dde6d221a176c502ce857bdc409dab 07-May-2013 Richard Smith <richard-llvm@metafoo.co.uk> C++1y: an assignment operator is implicitly 'constexpr' if it would only call 'constexpr' assignment operators for a literal class type.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181284 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/constant-expression-cxx1y.cpp
692eafd2052fb6ca581530d6f3569eea9520a508 06-May-2013 Richard Smith <richard-llvm@metafoo.co.uk> C++1y: support range-based for loops in constant expressions.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181184 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/constant-expression-cxx1y.cpp
ce61715606b5f55ccc023720cdf9c1a796b0d526 06-May-2013 Richard Smith <richard-llvm@metafoo.co.uk> C++1y: support 'for', 'while', and 'do ... while' in constant expressions.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181181 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/constant-expression-cxx1y.cpp
5528ac9f40ec6cb54e7096908bf2beeed511bce4 06-May-2013 Richard Smith <richard-llvm@metafoo.co.uk> C++1y: support for increment and decrement in constant expression evaluation.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181173 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/constant-expression-cxx1y.cpp
b476a14e9b35ef2448b42b033e1f0cceaa3f2778 05-May-2013 Richard Smith <richard-llvm@metafoo.co.uk> Factor out duplication between lvalue-to-rvalue conversions and variable
assignments in constant expressions. No significant functionality changes
(slight improvement to potential constant expression checking).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181170 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/constant-expression-cxx1y.cpp
bebf5b1bcfbf591dd3cd80c4aebd6486bb34f41c 26-Apr-2013 Richard Smith <richard-llvm@metafoo.co.uk> C++1y: support simple variable assignments in constexpr functions.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180603 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/constant-expression-cxx1y.cpp
a10b97898ee6339c3110e6ca33f178ff52f05238 22-Apr-2013 Richard Smith <richard-llvm@metafoo.co.uk> C++1y constexpr extensions, round 1: Allow most forms of declaration and
statement in constexpr functions. Everything which doesn't require variable
mutation is also allowed as an extension in C++11. 'void' becomes a literal
type to support constexpr functions which return 'void'.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180022 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/constant-expression-cxx1y.cpp