#include <stdio.h>
#include <valgrind.h>
/* GCC 3.4.6 will not compile inlined member template functions.
Let's assume GCC 4.x does */
#ifdef __GNUC__
#if __GNUC__ > 3
#define INLINE inline __attribute__((always_inline))
#else
#define INLINE
#endif
#endif
class X
{
public:
template <typename T>
static INLINE T temp_member_func_b(T argb) {
static T locb = 0;
if (argb > 0)
locb += argb;
return locb;
}
template <typename T>
static /*INLINE*/ T temp_member_func_noinline(T arga) {
return temp_member_func_b(arga);
}
};
int main() {
int result;
result = X::temp_member_func_noinline(result);
return 0;
}