[cfe-commits] r99351 - in /cfe/trunk: include/clang/AST/CXXInheritance.h include/clang/AST/DeclCXX.h include/clang/Basic/DiagnosticSemaKinds.td lib/AST/CXXInheritance.cpp lib/Sema/SemaDeclCXX.cpp test/CXX/class.derived/class.abstract/p4.cpp test/CXX/class.derived/class.abstract/p5.cpp test/CXX/class.derived/class.virtual/p2.cpp
Douglas Gregor
dgregor at apple.com
Tue Mar 23 23:11:00 PDT 2010
On Mar 23, 2010, at 11:08 PM, Jason Haslam wrote:
> On Mar 23, 2010, at 5:47 PM, Douglas Gregor wrote:
>
>> Author: dgregor
>> Date: Tue Mar 23 18:47:56 2010
>> New Revision: 99351
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=99351&view=rev
>> Log:
>> Implement computation of the final overriders for each virtual
>> function within a class hierarchy (C++ [class.virtual]p2).
>>
>> We use the final-overrider computation to determine when a particular
>> class is ill-formed because it has multiple final overriders for a
>> given virtual function (e.g., because two virtual functions override
>> the same virtual function in the same virtual base class). Fixes
>> PR5973.
>>
>> We also use the final-overrider computation to determine which virtual
>> member functions are pure when determining whether a class is
>> abstract or diagnosing the improper use of an abstract class. The
>> prior approach to determining whether there were any pure virtual
>> functions in a class didn't cope with virtual base class subobjects
>> properly, and could not easily be fixed to deal with the oddities of
>> subobject hiding. Fixes PR6631.
>
> This also fixes PR6124 which is the same as PR6631.
Thanks for pointing this out!
- Doug
More information about the cfe-commits
mailing list