Merge "Add __pure2 to a few more functions, most notably gettid and pthread_self."

This commit is contained in:
Elliott Hughes 2014-06-11 23:34:40 +00:00 committed by Gerrit Code Review
commit 2c02d0057c
6 changed files with 14 additions and 8 deletions

View file

@ -18,11 +18,14 @@
#include <pthread.h>
// Stop GCC optimizing out our pure function.
/* Must not be static! */ pthread_t (*pthread_self_fp)() = pthread_self;
static void BM_pthread_self(int iters) {
StartBenchmarkTiming();
for (int i = 0; i < iters; ++i) {
pthread_self();
pthread_self_fp();
}
StopBenchmarkTiming();

View file

@ -30,11 +30,14 @@ static void BM_unistd_getpid(int iters) {
}
BENCHMARK(BM_unistd_getpid);
// Stop GCC optimizing out our pure function.
/* Must not be static! */ pid_t (*gettid_fp)() = gettid;
static void BM_unistd_gettid(int iters) {
StartBenchmarkTiming();
for (int i = 0; i < iters; ++i) {
gettid();
gettid_fp();
}
StopBenchmarkTiming();

View file

@ -41,7 +41,7 @@ __BEGIN_DECLS
#endif
/* internal function returning the address of the thread-specific errno */
extern volatile int* __errno(void);
extern volatile int* __errno(void) __pure2;
/* a macro expanding to the errno l-value */
#define errno (*__errno())

View file

@ -226,7 +226,7 @@ int pthread_rwlock_trywrlock(pthread_rwlock_t*) __nonnull((1));
int pthread_rwlock_unlock(pthread_rwlock_t *rwlock) __nonnull((1));
int pthread_rwlock_wrlock(pthread_rwlock_t*) __nonnull((1));
pthread_t pthread_self(void);
pthread_t pthread_self(void) __pure2;
int pthread_setname_np(pthread_t, const char*) __nonnull((2));

View file

@ -138,21 +138,21 @@ typedef struct {
int rem;
} div_t;
extern div_t div(int, int);
extern div_t div(int, int) __pure2;
typedef struct {
long int quot;
long int rem;
} ldiv_t;
extern ldiv_t ldiv(long, long);
extern ldiv_t ldiv(long, long) __pure2;
typedef struct {
long long int quot;
long long int rem;
} lldiv_t;
extern lldiv_t lldiv(long long, long long);
extern lldiv_t lldiv(long long, long long) __pure2;
/* BSD compatibility. */
extern const char* getprogname(void);

View file

@ -54,7 +54,7 @@ extern __noreturn void _exit(int);
extern pid_t fork(void);
extern pid_t vfork(void);
extern pid_t getpid(void);
extern pid_t gettid(void);
extern pid_t gettid(void) __pure2;
extern pid_t getpgid(pid_t);
extern int setpgid(pid_t, pid_t);
extern pid_t getppid(void);