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/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p3.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/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p3.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/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p3.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/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p3.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/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p3.cpp
|
840462670ba7a6bc26265a2306b35f2f0f01f51c |
|
21-Apr-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
The 'constexpr implies const' rule for non-static member functions is gone in C++1y, so stop adding the 'const' there. Provide a compatibility warning for code relying on this in C++11, with a fix-it hint. Update our lazily-written tests to add the const, except for those ones which were testing our implementation of this rule. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179969 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p3.cpp
|
484f6fa0bd6b16b64e5c4cb40260f69a3dd52b4a |
|
09-Apr-2013 |
Douglas Gregor <dgregor@apple.com> |
<rdar://problem/13584715> Converted constant expressions are expected to have integral values. We were assuming that any expression used as a converted constant expression would either not have a folded constant value or would be an integer, which is not the case for some ill-formed constant expressions. Because converted constant expressions are only used where integral values are expected, we can simply treat this as an error path. If that ever changes, we'll need to widen the interface of Sema::CheckConvertedConstantExpression() anyway. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179068 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p3.cpp
|
86c3ae46250cdcc57778c27826060779a92f3815 |
|
13-Feb-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Update constexpr implementation to match CWG's chosen approach for core issues 1358, 1360, 1452 and 1453. - Instantiations of constexpr functions are always constexpr. This removes the need for separate declaration/definition checking, which is now gone. - This makes it possible for a constexpr function to be virtual, if they are only dependently virtual. Virtual calls to such functions are not constant expressions. - Likewise, it's now possible for a literal type to have virtual base classes. A constexpr constructor for such a type cannot actually produce a constant expression, though, so add a special-case diagnostic for a constructor call to such a type rather than trying to evaluate it. - Classes with trivial default constructors (for which value initialization can produce a fully-initialized value) are considered literal types. - Classes with volatile members are not literal types. - constexpr constructors can be members of non-literal types. We do not yet use static initialization for global objects constructed in this way. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150359 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p3.cpp
|
8398cbfc73f7ff0a676232db9ea9160bb9dafd8d |
|
01-Feb-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
constexpr: Unlike other incomplete types, 'void' cannot possibly be completed as a literal type. Disallow it as the return type of a constexpr function declaration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149469 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p3.cpp
|
745f5147e065900267c85a5568785a1991d4838f |
|
27-Jan-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
constexpr: Implement the [dcl.constexpr]p5 check for whether a constexpr function definition can produce a constant expression. This also provides the last few checks for [dcl.constexpr]p3 and [dcl.constexpr]p4. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149108 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p3.cpp
|
3534050c491454e4a5c7bcd0f8e6054cd89012cd |
|
13-Jan-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
PR11754: Reject non-static constexpr member functions in classes with virtual base classes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148094 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p3.cpp
|
6180245e9f63d2927b185ec251fb75aba30f1cac |
|
22-Dec-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
PR11614: Mark defaulted special constructors as constexpr if their implicit definition would satisfy the constexpr requirements. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147128 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p3.cpp
|
762bb9d0ad20320b9f97a841dce57ba5e8e48b07 |
|
14-Oct-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Update all tests other than Driver/std.cpp to use -std=c++11 rather than -std=c++0x. Patch by Ahmed Charles! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141900 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p3.cpp
|
9f569cca2a4c5fb6026005434e27025b9e71309d |
|
01-Oct-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
constexpr: semantic checking for constexpr functions and constructors. Based in part on patches by Peter Collingbourne. We diverge from the C++11 standard in a few areas, mostly related to checking constexpr function declarations, and not just definitions. See WG21 paper N3308=11-0078 for details. Function invocation substitution is not available in this patch; constexpr functions cannot yet be used from within constant expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140926 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/p3.cpp
|