8150da3796300bdc876775e1782331f0e43d2d94 |
|
07-Jun-2013 |
Eli Friedman <eli.friedman@gmail.com> |
When we're synthesizing copy/move-assignment, we can't form a reference to an invalid field; make sure we don't try. Fixes <rdar://problem/14084171>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183479 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/member-init.cpp
|
774d8b4679ce1317da0f18336c3d27bdb11e5f63 |
|
08-Jan-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
PR14838: When a member reference is bound to a temporary, don't forget to perform the semantic checks associated with the destruction of that temporary. It'll be destroyed at the end of the constructor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171818 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/member-init.cpp
|
b9d0b76e42fd2d4cdfd135220302458d03ad09fe |
|
27-Jul-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Final piece of core issue 1330: delay computing the exception specification of a defaulted special member function until the exception specification is needed (using the same criteria used for the delayed instantiation of exception specifications for function temploids). EST_Delayed is now EST_Unevaluated (using 1330's terminology), and, like EST_Uninstantiated, carries a pointer to the FunctionDecl which will be used to resolve the exception specification. This is enabled for all C++ modes: it's a little faster in the case where the exception specification isn't used, allows our C++11-in-C++98 extensions to work, and is still correct for C++98, since in that mode the computation of the exception specification can't fail. The diagnostics here aren't great (in particular, we should include implicit evaluation of exception specifications for defaulted special members in the template instantiation backtraces), but they're not much worse than before. Our approach to the problem of cycles between in-class initializers and the exception specification for a defaulted default constructor is modified a little by this change -- we now reject any odr-use of a defaulted default constructor if that constructor uses an in-class initializer and the use is in an in-class initialzer which is declared lexically earlier. This is a closer approximation to the current draft solution in core issue 1351, but isn't an exact match (but the current draft wording isn't reasonable, so that's to be expected). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160847 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/member-init.cpp
|
83a22ecbf52c06b4ee364f3fadcdb0abaf2dabf6 |
|
09-May-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Recover properly if a class member declaration starts with a scope specifier or template-id which can't be parsed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156468 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/member-init.cpp
|
3164c14cadbb09a05ba811602221e9156077cf44 |
|
14-Feb-2012 |
David Blaikie <dblaikie@gmail.com> |
Fix crash-on-invalid for 'operator int[]()' in C++11. Signed off by Richard Smith. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150464 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/member-init.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/SemaCXX/member-init.cpp
|
2eef427c8666cbe9a3cad40d4947c67c3ba0c400 |
|
07-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
When parsing a function-try-block that does not have a ctor-initializer, remember to call the Sema action to generate default ctor-initializers. What a delightful little miscompile. Fixes PR10578 / <rdar://problem/9877267>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139253 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/member-init.cpp
|
c2cdd5354aba8d6a74c45231829f3bbbbfeb2781 |
|
12-Jun-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Don't assert on initialized typedef declarations in classes: struct { typedef int A = 0; }; According to the C++11 standard, this is not ill-formed, but does not have any ascribed meaning. We can't reasonably accept it, so treat it as ill-formed. Also switch C++ from an incorrect 'fields can only be initialized in constructors' diagnostic for this case to C's 'illegal initializer (only variables can be initialized)' git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132890 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/member-init.cpp
|
7a614d8380297fcd2bc23986241905d97222948c |
|
11-Jun-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Implement support for C++11 in-class initialization of non-static data members. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132878 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaCXX/member-init.cpp
|