fix UB  when initializing parameterized tests

When running tests built with
-fsanitize=undefined and--disable-optimizations
the sanitizer will emit errors of the following general form:

runtime error: member call on address 0xxxxxxxxx which does not
point to an object of type 'WithParamInterface'
0xxxxxxxxx: note: object has invalid vptr
 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 ...
              ^~~~~~~~~~~~~~~~~~~~~~~
              invalid vptr

This can be traced to calls to WithParamInterface<T>::GetParam before
the object argument has been initialized. Although GetParam only
accesses static data it is a non-static member function. This causes
that call to have undefined behaviour.
The patch makes GetParam a static member function.

upstream pull request:
https://github.com/google/googletest/pull/1830

The alternative - if the pull request is denied - would be to
modify all parameterized tests to have them derive from
::libvpx_test::CodecTestWith*Params as the first base class.

Signed-off-by: Matthias Räncker <theonetruecamper@gmx.de>
Change-Id: I8e91a4fba5438c9b3e93fa398f789115ab86b521
2 files changed