glsl: Use 'using' to be explicit about visitor overloads
authorKristian H. Kristensen <hoegsberg@google.com>
Mon, 3 Feb 2020 20:43:19 +0000 (12:43 -0800)
committerMarge Bot <eric+marge@anholt.net>
Tue, 4 Feb 2020 06:03:52 +0000 (06:03 +0000)
commite3dfa8f4d694e7d64a6401752af1f973b0852aab
tree70f90b4e5ee9c9c4a94999e2425babccb134d11d
parent0bc516fceb742e4c1ce2d47f129d19d8bb005d13
glsl: Use 'using' to be explicit about visitor overloads

Clang has a warning about overloading virtuals that triggers when a
derived class defines a virtual function that's an overload of
function in the base class.  This kind of thing:

  struct chart; // let's pretend this exists
  struct Base
  {
      virtual void* get(char* e);
  };

  struct Derived: public Base {
      virtual void* get(chart* e); // typo, we wanted to override the same function
  };

The solution is to use

  using Base::get;

to be explicit about the intention to reuse the base class virtual.
We hit this a lot with out glsl ir_hierarchical_visitor visitor
pattern, so let's adds some 'using' to calm down the compiler.

See-also: https://stackoverflow.com/questions/18515183/c-overloaded-virtual-function-warning-by-clang)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3686>
src/compiler/glsl/linker.cpp
src/compiler/glsl/lower_jumps.cpp
src/compiler/glsl/opt_constant_variable.cpp
src/compiler/glsl/opt_dead_code_local.cpp