llvm-project/clang/test/CXX/basic
Richard Smith 3607ffee5c 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.

llvm-svn: 150359
2012-02-13 03:54:03 +00:00
..
basic.def.odr Check for redefinitions in MergeVarDecl. This finds redefinitions of globals without an initializer in C++ and thus fixes PR5451. 2010-02-02 18:35:11 +00:00
basic.link Improve 0-argument -Wvexing-parse diagnostic by adding notes with fix-its: 2012-01-12 23:53:29 +00:00
basic.lookup Modify how the -verify flag works. Currently, the verification string and 2011-12-15 00:38:15 +00:00
basic.scope Update all tests other than Driver/std.cpp to use -std=c++11 rather than 2011-10-13 22:29:44 +00:00
basic.start/basic.start.main Disallow constexpr main. 2012-02-04 06:10:17 +00:00
basic.stc/basic.stc.dynamic Semantic checking for exception specifications should be triggered by 2011-03-02 02:04:40 +00:00
basic.types Update constexpr implementation to match CWG's chosen approach for core issues 2012-02-13 03:54:03 +00:00