On 05/31/2017 06:09 AM, Emil Velikov wrote:
> On 31 May 2017 at 01:55, Ian Romanick <i...@freedesktop.org> wrote:
>> I don't understand these warnings, and I have even less understanding of
>> how "using" fixes them.  For example...
>>
>> On 05/30/2017 01:47 PM, Rob Herring wrote:
>>> clang gives warnings about overloaded virtual functions:
>>>
>>> src/compiler/glsl/linker.cpp:244:30: warning: '(anonymous 
>>> namespace)::array_resize_visitor::visit' hides overloaded virtual function 
>>> [-Woverloaded-virtual]
>>>    virtual ir_visitor_status visit(ir_variable *var)
>>>                              ^
>>> src/compiler/glsl/linker.cpp:195:30: note: hidden overloaded virtual 
>>> function '(anonymous namespace)::deref_type_updater::visit' declared here: 
>>> type mismatch at 1st parameter ('ir_dereference_variable *' vs 'ir_variable 
>>> *')
>>>    virtual ir_visitor_status visit(ir_dereference_variable *ir)
>>>                              ^
>>
>> This is weird and confusing.  ir_hierarchical_visitor has a virtual
>> visit(class ir_dereference_variable *) method.  The complaint about the
>> type seems... bizarre.
>>
> Since it took me a second to click here is my take on it:
> 
> The "base" class deref_type_updater has
>    virtual ir_visitor_status visit(ir_variable *var)
> 
> ... while the derived one class array_resize_visitor
>    virtual ir_visitor_status visit(ir_dereference_variable *ir)
> 
> ... hence the type mismatch.

Right... but deref_type_updater is derived from ir_hierarchical_visitor,
and that has virtual ir_visitor_status visit(ir_dereference_variable
*ir).  That is the function being overridden.

> I think Samuel is spot on here - we might want to keep it as-is until
> one gets the chance to address correctly.
> 
> -Emil
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to