base: Get bitunions to compile on clang 3.8.

clang was getting very upset and interpretting a member function
pointer as a call to the actual underlying function, and then
complaining that it was a non-static function call without an instance.

It seems what it was really upset about was that the class who's scope
the member function pointer belonged to (the current class) wasn't done
being defined. This *should* be ok as far as I can tell, but clang was
having none of it.

This change reworks how the type of the setter function arguments are
determined to work around that limitation. The bitunion test was run
with clang++ and g++ and both pass, and I've built gem5.opt for ARM

Change-Id: Ib9351784a897af4867fe08045577e0247334ea11
Reviewed-by: Jason Lowe-Power <>
Maintainer: Gabe Black <>
1 file changed