HomePhabricator

Replace enum types in variadic functions by build-in types.

Description

Replace enum types in variadic functions by build-in types.

Summary:
When compiling the runtime library with clang we get warnings like:

error: passing an object that undergoes default argument promotion to 'va_start' has undefined behavior [-Werror,-Wvarargs]
    va_start( args, id );
                    ^
note: parameter of type 'kmp_i18n_id_t' (aka 'kmp_i18n_id') is declared here
    kmp_i18n_id_t id,

My understanding is that the va_start macro only gets the promoted type so it won't know what was the exact type of the argument, which can potentially not work for some targets given that the implementation of the the calling convention could not be done properly.

This patch fixes that by using a built-in type in the function signature.

Reviewers: tlwilmar, jlpeyton, AndreyChurbanov

Subscribers: arpith-jacob, carlo.bertolli, caomhin, openmp-commits

Differential Revision: https://reviews.llvm.org/D22427

Details

Committed
sfantaoJul 22 2016, 9:05 AM
Differential Revision
D22427: Replace enum types in variadic functions by build-in types.
Branches
Unknown
Tags
Unknown