On Thu, Jul 9, 2015 at 3:00 PM, Ian Lance Taylor <i...@golang.org> wrote: > On Wed, Jul 1, 2015 at 3:07 AM, Uros Bizjak <ubiz...@gmail.com> wrote: >> >> This patch avoids "enum conversion when passing argument 1 of >> ‘getrusage’ is invalid in C++" warning when compiling getruntime.c. >> The condition is copied from sys/resource.h. > > Sorry, I've been on vacation. > > I think it would be a lot nicer to always use RUSAGE_SELF in the > function, and earlier in the file write > > #ifndef RUSAGE_SELF > #define RUSAGE_SELF 0 > #endif
Indeed, attached patch builds without warning. 2015-07-09 Uros Bizjak <ubiz...@gmail.com> * getruntime.c (RUSAGE_SELF): Define if not already defined. (get_runtime): Use RUSAGE_SELF as argument 1 of getrusage call. Bootstrapped on x86_64-linux-gnu. OK for mainline SVN? Uros.
Index: getruntime.c =================================================================== --- getruntime.c (revision 225610) +++ getruntime.c (working copy) @@ -65,6 +65,10 @@ Boston, MA 02110-1301, USA. */ #define CLOCKS_PER_SEC 1 #endif +#ifndef RUSAGE_SELF +#define RUSAGE_SELF 0 +#endif + #ifdef _SC_CLK_TCK #define GNU_HZ sysconf(_SC_CLK_TCK) #else @@ -95,11 +99,7 @@ get_run_time (void) #if defined (HAVE_GETRUSAGE) && defined (HAVE_SYS_RESOURCE_H) struct rusage rusage; -#if defined __USE_GNU && !defined __cplusplus getrusage (RUSAGE_SELF, &rusage); -#else - getrusage (0, &rusage); -#endif return (rusage.ru_utime.tv_sec * 1000000 + rusage.ru_utime.tv_usec + rusage.ru_stime.tv_sec * 1000000 + rusage.ru_stime.tv_usec); #else /* ! HAVE_GETRUSAGE */