summaryrefslogtreecommitdiffstats
path: root/clang/test/CXX/class.derived/class.abstract/p16.cpp
Commit message (Collapse)AuthorAgeFilesLines
* [cxx2a] P0641R2: (Some) type mismatches on defaulted functions onlyRichard Smith2018-09-281-2/+2
| | | | | | | | | | | | | | | | render the function deleted instead of rendering the program ill-formed. This change also adds an enabled-by-default warning for the case where an explicitly-defaulted special member function of a non-template class is implicitly deleted by the type checking rules. (This fires either due to this language change or due to pre-C++20 reasons for the member being implicitly deleted). I've tested this on a large codebase and found only bugs (where the program means something that's clearly different from what the programmer intended), so this is enabled by default, but we should revisit this if there are problems with this being enabled by default. llvm-svn: 343285
* Add context note to diagnostics that occur while declaring an implicit ↵Richard Smith2017-02-231-3/+5
| | | | | | special member function. llvm-svn: 296020
* When diagnosing that a defaulted function is ill-formed because it would beRichard Smith2016-10-311-5/+13
| | | | | | | implicitly deleted and overrides a non-deleted function, explain why the function is deleted. For PR30844. llvm-svn: 285610
* Implement final resolution of DR1402: implicitly-declared move operators thatRichard Smith2013-11-041-2/+2
| | | | | | | | | | | would be deleted are still declared, but are ignored by overload resolution. Also, don't delete such members if a subobject has no corresponding move operation and a non-trivial copy. This causes us to implicitly declare move operations in more cases, but risks move-assigning virtual bases multiple times in some circumstances (a warning for that is to follow). llvm-svn: 193969
* If a defaulted special member is implicitly deleted, check whether it'sRichard Smith2013-04-021-0/+26
| | | | | | | overriding a non-deleted virtual function. The existing check for this doesn't catch this case, because it fires before we mark the method as deleted. llvm-svn: 178563
* Implement C++ 10.3p16 - overrides involving deleted functions must match.David Blaikie2012-10-171-0/+16
Only deleted functions may override deleted functions and non-deleted functions may only override non-deleted functions. llvm-svn: 166082
OpenPOWER on IntegriCloud