diff --git a/libgcc/emutls.c b/libgcc/emutls.c index 0fea1f10bfabb5b08c85ff628d5fe57079881650..95aaed743411425425b1313a960fd81a1321f881 100644 --- a/libgcc/emutls.c +++ b/libgcc/emutls.c @@ -57,6 +57,14 @@ struct __emutls_array # define EMUTLS_ATTR #endif +/* __emutls_get_address and __emutls_register_common are registered as + builtins, but the compiler struct __emutls_object doesn't have + a union in there and is only created when actually needed for + the calls to the builtins, so the builtins are created with void * + arguments rather than struct __emutls_object *. Avoid + -Wbuiltin-declaration-mismatch warnings. */ +#pragma GCC diagnostic ignored "-Wbuiltin-declaration-mismatch" + EMUTLS_ATTR void *__emutls_get_address (struct __emutls_object *); EMUTLS_ATTR