[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