[cfe-commits] r80064 - in /cfe/trunk: lib/CodeGen/CGCXX.cpp lib/CodeGen/CodeGenFunction.h test/CodeGenCXX/virt.cpp

Douglas Gregor dgregor at apple.com
Wed Aug 26 14:03:07 PDT 2009


On Aug 26, 2009, at 1:51 PM, Mike Stump wrote:

> On Aug 25, 2009, at 7:58 PM, Douglas Gregor wrote:
>> Checking that this is a reference to a virtual method is necessary,  
>> but not sufficient. We also need to check that the name was not  
>> qualified, e.g.,
>
> Fixed by putting in the code, commented out, but with a FIXME.
>
> struct test12_A {
>  virtual void foo0() { }
>  virtual void foo();
> } *test12_pa;
>
> void foo() {
>  test12_pa->test12_A::foo();
> }
>
> -ast-prints as:
>
> void foo() {
>    test12_pa->foo();
> }
>
> :-(

That's kinda why I said:

	"This will probably require some more AST support, to keep track of  
the nested-
name-specifier in a MemberExpr."

It's not terribly complicated to add that AST support, since Sema  
already has all of the right information.

	- Doug



More information about the cfe-commits mailing list