Skip to content

Commit 887ac1a

Browse files
dgrove-ossdas
authored andcommitted
fixes for compiler warnings
work in progress on cleaning up code so it can be compiled with the same set of warning flags used on Darwin. This is an initial pass through the C files in src to resolve warnings. Most warnings are related to implicit size/sign conversions between integral types and missing explicit prototypes for non-static functions. Signed-off-by: Daniel A. Steffen <dsteffen@apple.com>
1 parent 8c5fde1 commit 887ac1a

File tree

12 files changed

+101
-52
lines changed

12 files changed

+101
-52
lines changed

src/BlocksRuntime/runtime.c

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,8 @@ GC support stub routines
148148

149149

150150
static void *_Block_alloc_default(const unsigned long size, const bool initialCountIsOne, const bool isObject) {
151+
(void)initialCountIsOne;
152+
(void)isObject;
151153
return malloc(size);
152154
}
153155

@@ -156,16 +158,20 @@ static void _Block_assign_default(void *value, void **destptr) {
156158
}
157159

158160
static void _Block_setHasRefcount_default(const void *ptr, const bool hasRefcount) {
161+
(void)ptr;
162+
(void)hasRefcount;
159163
}
160164

161165
#if HAVE_OBJC
162166
static void _Block_do_nothing(const void *aBlock) { }
163167
#endif
164168

165169
static void _Block_retain_object_default(const void *ptr) {
170+
(void)ptr;
166171
}
167172

168173
static void _Block_release_object_default(const void *ptr) {
174+
(void)ptr;
169175
}
170176

171177
static void _Block_assign_weak_default(const void *ptr, void *dest) {
@@ -193,7 +199,9 @@ static void _Block_memmove_gc_broken(void *dest, void *src, unsigned long size)
193199
}
194200
#endif
195201

196-
static void _Block_destructInstance_default(const void *aBlock) {}
202+
static void _Block_destructInstance_default(const void *aBlock) {
203+
(void)aBlock;
204+
}
197205

198206
/**************************************************************************
199207
GC support callout functions - initially set to stub routines

src/data.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,8 @@ _dispatch_data_destroy_buffer(const void* buffer, size_t size,
138138
mach_vm_size_t vm_size = size;
139139
mach_vm_address_t vm_addr = (uintptr_t)buffer;
140140
mach_vm_deallocate(mach_task_self(), vm_addr, vm_size);
141+
#else
142+
(void)size;
141143
#endif
142144
} else {
143145
if (!queue) {

src/event/event_epoll.c

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ typedef struct dispatch_muxnote_s {
4848
TAILQ_HEAD(, dispatch_unote_linkage_s) dmn_readers_head;
4949
TAILQ_HEAD(, dispatch_unote_linkage_s) dmn_writers_head;
5050
int dmn_fd;
51-
int dmn_ident;
51+
uint32_t dmn_ident;
5252
uint32_t dmn_events;
5353
int16_t dmn_filter;
5454
bool dmn_skip_outq_ioctl;
@@ -85,17 +85,17 @@ static struct dispatch_epoll_timeout_s _dispatch_epoll_timeout[] = {
8585

8686
DISPATCH_ALWAYS_INLINE
8787
static inline struct dispatch_muxnote_bucket_s *
88-
_dispatch_muxnote_bucket(int ident)
88+
_dispatch_muxnote_bucket(uint32_t ident)
8989
{
90-
return &_dispatch_sources[DSL_HASH((uint32_t)ident)];
90+
return &_dispatch_sources[DSL_HASH(ident)];
9191
}
9292
#define _dispatch_unote_muxnote_bucket(du) \
9393
_dispatch_muxnote_bucket(du._du->du_ident)
9494

9595
DISPATCH_ALWAYS_INLINE
9696
static inline dispatch_muxnote_t
9797
_dispatch_muxnote_find(struct dispatch_muxnote_bucket_s *dmb,
98-
uint64_t ident, int16_t filter)
98+
uint32_t ident, int16_t filter)
9999
{
100100
dispatch_muxnote_t dmn;
101101
if (filter == EVFILT_WRITE) filter = EVFILT_READ;
@@ -112,7 +112,7 @@ _dispatch_muxnote_find(struct dispatch_muxnote_bucket_s *dmb,
112112
static void
113113
_dispatch_muxnote_dispose(dispatch_muxnote_t dmn)
114114
{
115-
if (dmn->dmn_filter != EVFILT_READ || dmn->dmn_fd != dmn->dmn_ident) {
115+
if (dmn->dmn_filter != EVFILT_READ || (uint32_t)dmn->dmn_fd != dmn->dmn_ident) {
116116
close(dmn->dmn_fd);
117117
}
118118
free(dmn);
@@ -142,26 +142,27 @@ _dispatch_muxnote_create(dispatch_unote_t du, uint32_t events)
142142

143143
dispatch_muxnote_t dmn;
144144
struct stat sb;
145-
int fd = du._du->du_ident;
145+
int fd = (int)du._du->du_ident;
146146
int16_t filter = du._du->du_filter;
147147
bool skip_outq_ioctl = false, skip_inq_ioctl = false;
148148
sigset_t sigmask;
149149

150150
switch (filter) {
151-
case EVFILT_SIGNAL:
152-
if (!sigismember(&signals_with_unotes, du._du->du_ident)) {
151+
case EVFILT_SIGNAL: {
152+
int signo = (int)du._du->du_ident;
153+
if (!sigismember(&signals_with_unotes, signo)) {
153154
manager_thread = pthread_self();
154-
sigaddset(&signals_with_unotes, du._du->du_ident);
155-
sigaction(du._du->du_ident, &sa, NULL);
155+
sigaddset(&signals_with_unotes, signo);
156+
sigaction(signo, &sa, NULL);
156157
}
157158
sigemptyset(&sigmask);
158-
sigaddset(&sigmask, du._du->du_ident);
159+
sigaddset(&sigmask, signo);
159160
fd = signalfd(-1, &sigmask, SFD_NONBLOCK | SFD_CLOEXEC);
160161
if (fd < 0) {
161162
return NULL;
162163
}
163164
break;
164-
165+
}
165166
case EVFILT_WRITE:
166167
filter = EVFILT_READ;
167168
case EVFILT_READ:
@@ -290,7 +291,7 @@ _dispatch_unote_resume(dispatch_unote_t du)
290291
}
291292

292293
bool
293-
_dispatch_unote_unregister(dispatch_unote_t du, uint32_t flags)
294+
_dispatch_unote_unregister(dispatch_unote_t du, DISPATCH_UNUSED uint32_t flags)
294295
{
295296
switch (du._du->du_filter) {
296297
case DISPATCH_EVFILT_CUSTOM_ADD:
@@ -313,10 +314,10 @@ _dispatch_unote_unregister(dispatch_unote_t du, uint32_t flags)
313314
dul->du_muxnote = NULL;
314315

315316
if (TAILQ_EMPTY(&dmn->dmn_readers_head)) {
316-
events &= ~EPOLLIN;
317+
events &= (uint32_t)(~EPOLLIN);
317318
}
318319
if (TAILQ_EMPTY(&dmn->dmn_writers_head)) {
319-
events &= ~EPOLLOUT;
320+
events &= (uint32_t)(~EPOLLOUT);
320321
}
321322

322323
if (events == dmn->dmn_events) {
@@ -350,32 +351,33 @@ _dispatch_event_merge_timer(dispatch_clock_t clock)
350351
}
351352

352353
static void
353-
_dispatch_timeout_program(uint32_t tidx, uint64_t target, uint64_t leeway)
354+
_dispatch_timeout_program(uint32_t tidx, uint64_t target,
355+
DISPATCH_UNUSED uint64_t leeway)
354356
{
355357
dispatch_clock_t clock = DISPATCH_TIMER_CLOCK(tidx);
356358
dispatch_epoll_timeout_t timer = &_dispatch_epoll_timeout[clock];
357359
struct epoll_event ev = {
358360
.events = EPOLLONESHOT | EPOLLIN,
359361
.data = { .u32 = timer->det_ident },
360362
};
361-
unsigned long op;
363+
int op;
362364

363365
if (target >= INT64_MAX && !timer->det_registered) {
364366
return;
365367
}
366368

367369
if (unlikely(timer->det_fd < 0)) {
368-
clockid_t clock;
370+
clockid_t clockid;
369371
int fd;
370372
switch (DISPATCH_TIMER_CLOCK(tidx)) {
371373
case DISPATCH_CLOCK_MACH:
372-
clock = CLOCK_MONOTONIC;
374+
clockid = CLOCK_MONOTONIC;
373375
break;
374376
case DISPATCH_CLOCK_WALL:
375-
clock = CLOCK_REALTIME;
377+
clockid = CLOCK_REALTIME;
376378
break;
377379
}
378-
fd = timerfd_create(clock, TFD_NONBLOCK | TFD_CLOEXEC);
380+
fd = timerfd_create(clockid, TFD_NONBLOCK | TFD_CLOEXEC);
379381
if (!dispatch_assume(fd >= 0)) {
380382
return;
381383
}
@@ -451,7 +453,7 @@ _dispatch_epoll_init(void *context DISPATCH_UNUSED)
451453
.events = EPOLLIN | EPOLLFREE,
452454
.data = { .u32 = DISPATCH_EPOLL_EVENTFD, },
453455
};
454-
unsigned long op = EPOLL_CTL_ADD;
456+
int op = EPOLL_CTL_ADD;
455457
if (epoll_ctl(_dispatch_epfd, op, _dispatch_eventfd, &ev) < 0) {
456458
DISPATCH_INTERNAL_CRASH(errno, "epoll_ctl() failed");
457459
}
@@ -504,7 +506,7 @@ _dispatch_get_buffer_size(dispatch_muxnote_t dmn, bool writer)
504506
return 1;
505507
}
506508

507-
if (ioctl(dmn->dmn_ident, writer ? SIOCOUTQ : SIOCINQ, &n) != 0) {
509+
if (ioctl((int)dmn->dmn_ident, writer ? SIOCOUTQ : SIOCINQ, &n) != 0) {
508510
switch (errno) {
509511
case EINVAL:
510512
case ENOTTY:

src/event/workqueue.c

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,6 @@
2222

2323
#if DISPATCH_USE_INTERNAL_WORKQUEUE
2424

25-
// forward looking typedef; not yet defined in dispatch
26-
typedef pid_t dispatch_tid;
27-
2825
/*
2926
* dispatch_workq monitors the thread pool that is
3027
* executing the work enqueued on libdispatch's pthread
@@ -88,7 +85,7 @@ _dispatch_workq_worker_register(dispatch_queue_t root_q, qos_class_t cls)
8885
dispatch_qos_t qos = _dispatch_qos_from_qos_class(cls);
8986
dispatch_workq_monitor_t mon = &_dispatch_workq_monitors[qos-1];
9087
dispatch_assert(mon->dq == root_q);
91-
dispatch_tid tid = _dispatch_thread_getspecific(tid);
88+
dispatch_tid tid = _dispatch_tid_self();
9289
_dispatch_unfair_lock_lock(&mon->registered_tid_lock);
9390
dispatch_assert(mon->num_registered_tids < WORKQ_MAX_TRACKED_TIDS-1);
9491
int worker_id = mon->num_registered_tids++;
@@ -103,7 +100,8 @@ _dispatch_workq_worker_unregister(dispatch_queue_t root_q, qos_class_t cls)
103100
#if HAVE_DISPATCH_WORKQ_MONITORING
104101
dispatch_qos_t qos = _dispatch_qos_from_qos_class(cls);
105102
dispatch_workq_monitor_t mon = &_dispatch_workq_monitors[qos-1];
106-
dispatch_tid tid = _dispatch_thread_getspecific(tid);
103+
dispatch_assert(mon->dq == root_q);
104+
dispatch_tid tid = _dispatch_tid_self();
107105
_dispatch_unfair_lock_lock(&mon->registered_tid_lock);
108106
for (int i = 0; i < mon->num_registered_tids; i++) {
109107
if (mon->registered_tids[i] == tid) {
@@ -138,10 +136,10 @@ _dispatch_workq_count_runnable_workers(dispatch_workq_monitor_t mon)
138136
for (int i = 0; i < mon->num_registered_tids; i++) {
139137
dispatch_tid tid = mon->registered_tids[i];
140138
int fd;
141-
size_t bytes_read = -1;
139+
ssize_t bytes_read = -1;
142140

143141
int r = snprintf(path, sizeof(path), "/proc/%d/stat", tid);
144-
dispatch_assert(r > 0 && r < sizeof(path));
142+
dispatch_assert(r > 0 && r < (int)sizeof(path));
145143

146144
fd = open(path, O_RDONLY | O_NONBLOCK);
147145
if (unlikely(fd == -1)) {
@@ -179,7 +177,7 @@ _dispatch_workq_count_runnable_workers(dispatch_workq_monitor_t mon)
179177
static void
180178
_dispatch_workq_monitor_pools(void *context DISPATCH_UNUSED)
181179
{
182-
int global_soft_max = WORKQ_OVERSUBSCRIBE_FACTOR * dispatch_hw_config(active_cpus);
180+
int global_soft_max = WORKQ_OVERSUBSCRIBE_FACTOR * (int)dispatch_hw_config(active_cpus);
183181
int global_runnable = 0;
184182
for (dispatch_qos_t i = DISPATCH_QOS_MAX; i > DISPATCH_QOS_UNSPECIFIED; i--) {
185183
dispatch_workq_monitor_t mon = &_dispatch_workq_monitors[i-1];
@@ -228,7 +226,7 @@ static void
228226
_dispatch_workq_init_once(void *context DISPATCH_UNUSED)
229227
{
230228
#if HAVE_DISPATCH_WORKQ_MONITORING
231-
int target_runnable = dispatch_hw_config(active_cpus);
229+
int target_runnable = (int)dispatch_hw_config(active_cpus);
232230
for (dispatch_qos_t i = DISPATCH_QOS_MAX; i > DISPATCH_QOS_UNSPECIFIED; i--) {
233231
dispatch_workq_monitor_t mon = &_dispatch_workq_monitors[i-1];
234232
mon->dq = _dispatch_get_root_queue(i, false);

src/internal.h

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -394,9 +394,9 @@ DISPATCH_EXPORT DISPATCH_NOTHROW void dispatch_atfork_child(void);
394394
DISPATCH_EXPORT DISPATCH_NOINLINE
395395
void _dispatch_bug(size_t line, long val);
396396

397-
#if HAVE_MACH
398397
DISPATCH_NOINLINE
399398
void _dispatch_bug_client(const char* msg);
399+
#if HAVE_MACH
400400
DISPATCH_NOINLINE
401401
void _dispatch_bug_mach_client(const char *msg, mach_msg_return_t kr);
402402
#endif // HAVE_MACH
@@ -466,7 +466,9 @@ void _dispatch_log(const char *msg, ...);
466466
} \
467467
} while (0)
468468
#else
469-
static inline void _dispatch_assert(long e, long line) {
469+
static inline void
470+
_dispatch_assert(long e, size_t line)
471+
{
470472
if (DISPATCH_DEBUG && !e) _dispatch_abort(line, e);
471473
}
472474
#define dispatch_assert(e) _dispatch_assert((long)(e), __LINE__)
@@ -488,7 +490,9 @@ static inline void _dispatch_assert(long e, long line) {
488490
} \
489491
} while (0)
490492
#else
491-
static inline void _dispatch_assert_zero(long e, long line) {
493+
static inline void
494+
_dispatch_assert_zero(long e, size_t line)
495+
{
492496
if (DISPATCH_DEBUG && e) _dispatch_abort(line, e);
493497
}
494498
#define dispatch_assert_zero(e) _dispatch_assert_zero((long)(e), __LINE__)
@@ -512,7 +516,9 @@ static inline void _dispatch_assert_zero(long e, long line) {
512516
_e; \
513517
})
514518
#else
515-
static inline long _dispatch_assume(long e, long line) {
519+
static inline long
520+
_dispatch_assume(long e, long line)
521+
{
516522
if (!e) _dispatch_bug(line, e);
517523
return e;
518524
}
@@ -535,7 +541,9 @@ static inline long _dispatch_assume(long e, long line) {
535541
_e; \
536542
})
537543
#else
538-
static inline long _dispatch_assume_zero(long e, long line) {
544+
static inline long
545+
_dispatch_assume_zero(long e, long line)
546+
{
539547
if (e) _dispatch_bug(line, e);
540548
return e;
541549
}
@@ -850,7 +858,7 @@ _dispatch_ktrace_impl(uint32_t code, uint64_t a, uint64_t b,
850858
#define _dispatch_hardware_crash() \
851859
__asm__(""); __builtin_trap() // <rdar://problem/17464981>
852860

853-
#define _dispatch_set_crash_log_cause_and_message(ac, msg)
861+
#define _dispatch_set_crash_log_cause_and_message(ac, msg) ((void)(ac))
854862
#define _dispatch_set_crash_log_message(msg)
855863
#define _dispatch_set_crash_log_message_dynamic(msg)
856864

src/io.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
#endif
2626

2727
#ifndef PAGE_SIZE
28-
#define PAGE_SIZE getpagesize()
28+
#define PAGE_SIZE ((size_t)getpagesize())
2929
#endif
3030

3131
#if DISPATCH_DATA_IS_BRIDGED_TO_NSDATA
@@ -1372,7 +1372,7 @@ _dispatch_fd_entry_create_with_fd(dispatch_fd_t fd, uintptr_t hash)
13721372
break;
13731373
);
13741374
}
1375-
int32_t dev = major(st.st_dev);
1375+
dev_t dev = major(st.st_dev);
13761376
// We have to get the disk on the global dev queue. The
13771377
// barrier queue cannot continue until that is complete
13781378
dispatch_suspend(fd_entry->barrier_queue);
@@ -2167,7 +2167,7 @@ _dispatch_operation_advise(dispatch_operation_t op, size_t chunk_size)
21672167
op->advise_offset += advise.ra_count;
21682168
#ifdef __linux__
21692169
_dispatch_io_syscall_switch(err,
2170-
readahead(op->fd_entry->fd, advise.ra_offset, advise.ra_count),
2170+
readahead(op->fd_entry->fd, advise.ra_offset, (size_t)advise.ra_count),
21712171
case EINVAL: break; // fd does refer to a non-supported filetype
21722172
default: (void)dispatch_assume_zero(err); break;
21732173
);

src/queue.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5329,6 +5329,8 @@ _dispatch_root_queue_push(dispatch_queue_t rq, dispatch_object_t dou,
53295329
if (_dispatch_root_queue_push_needs_override(rq, qos)) {
53305330
return _dispatch_root_queue_push_override(rq, dou, qos);
53315331
}
5332+
#else
5333+
(void)qos;
53325334
#endif
53335335
_dispatch_root_queue_push_inline(rq, dou, dou, 1);
53345336
}
@@ -5870,7 +5872,7 @@ _dispatch_worker_thread(void *context)
58705872

58715873
#if DISPATCH_USE_INTERNAL_WORKQUEUE
58725874
if (monitored) {
5873-
_dispatch_workq_worker_unregister(dq, qc->dgq_qos);
5875+
_dispatch_workq_worker_unregister(dq, qc->dgq_qos);
58745876
}
58755877
#endif
58765878
(void)os_atomic_inc2o(qc, dgq_thread_pool_size, release);
@@ -5962,6 +5964,7 @@ _dispatch_runloop_root_queue_wakeup_4CF(dispatch_queue_t dq)
59625964
_dispatch_runloop_queue_wakeup(dq, 0, false);
59635965
}
59645966

5967+
#if TARGET_OS_MAC
59655968
dispatch_runloop_handle_t
59665969
_dispatch_runloop_root_queue_get_port_4CF(dispatch_queue_t dq)
59675970
{
@@ -5970,6 +5973,7 @@ _dispatch_runloop_root_queue_get_port_4CF(dispatch_queue_t dq)
59705973
}
59715974
return _dispatch_runloop_queue_get_handle(dq);
59725975
}
5976+
#endif
59735977

59745978
static void
59755979
_dispatch_runloop_queue_handle_init(void *ctxt)

0 commit comments

Comments
 (0)