[Mesa-dev] [PATCH 1/4] glsl: fix visit/visit_enter overloaded virtual function warnings
Emil Velikov
emil.l.velikov at gmail.com
Wed May 31 13:09:55 UTC 2017
On 31 May 2017 at 01:55, Ian Romanick <idr at 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.
I think Samuel is spot on here - we might want to keep it as-is until
one gets the chance to address correctly.
-Emil
More information about the mesa-dev
mailing list