Build LLVM with -Wstrict-prototypes enabled

Clang 5 supports -Wstrict-prototypes. We should use it to catch any C
declarations that declare a non-prototype function.

rdar://33705313

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

llvm-svn: 312240
This commit is contained in:
Alex Lorenz 2017-08-31 13:23:24 +00:00
parent 56572c6a5e
commit fbac1ae062
8 changed files with 19 additions and 17 deletions

View File

@ -92,7 +92,7 @@ static int fd = -1;
/*
* A list of functions to write out the data.
*/
typedef void (*writeout_fn)();
typedef void (*writeout_fn)(void);
struct writeout_fn_node {
writeout_fn fn;
@ -105,7 +105,7 @@ static struct writeout_fn_node *writeout_fn_tail = NULL;
/*
* A list of flush functions that our __gcov_flush() function should call.
*/
typedef void (*flush_fn)();
typedef void (*flush_fn)(void);
struct flush_fn_node {
flush_fn fn;

View File

@ -63,8 +63,8 @@ const char *__llvm_profile_begin_names(void);
const char *__llvm_profile_end_names(void);
uint64_t *__llvm_profile_begin_counters(void);
uint64_t *__llvm_profile_end_counters(void);
ValueProfNode *__llvm_profile_begin_vnodes();
ValueProfNode *__llvm_profile_end_vnodes();
ValueProfNode *__llvm_profile_begin_vnodes(void);
ValueProfNode *__llvm_profile_end_vnodes(void);
/*!
* \brief Clear profile counters to zero.
@ -164,7 +164,7 @@ void __llvm_profile_initialize_file(void);
* merge mode is turned on for instrumented programs with shared libs).
* Side-effect: this API call will invoke malloc with dynamic memory allocation.
*/
const char *__llvm_profile_get_path_prefix();
const char *__llvm_profile_get_path_prefix(void);
/*! \brief Get the magic token for the file format. */
uint64_t __llvm_profile_get_magic(void);

View File

@ -86,7 +86,7 @@ COMPILER_RT_WEAK lprofFilename lprofCurFilename = {0, 0, 0, {0}, {0},
0, 0, 0, PNS_unknown};
int getpid(void);
static int getCurFilenameLength();
static int getCurFilenameLength(void);
static const char *getCurFilename(char *FilenameBuf);
static unsigned doMerging() { return lprofCurFilename.MergePoolSize; }

View File

@ -155,27 +155,27 @@ int lprofWriteDataImpl(ProfDataWriter *Writer,
void lprofMergeValueProfData(struct ValueProfData *SrcValueProfData,
__llvm_profile_data *DstData);
VPDataReaderType *lprofGetVPDataReader();
VPDataReaderType *lprofGetVPDataReader(void);
/* Internal interface used by test to reset the max number of
* tracked values per value site to be \p MaxVals.
*/
void lprofSetMaxValsPerSite(uint32_t MaxVals);
void lprofSetupValueProfiler();
void lprofSetupValueProfiler(void);
/* Return the profile header 'signature' value associated with the current
* executable or shared library. The signature value can be used to for
* a profile name that is unique to this load module so that it does not
* collide with profiles from other binaries. It also allows shared libraries
* to dump merged profile data into its own profile file. */
uint64_t lprofGetLoadModuleSignature();
uint64_t lprofGetLoadModuleSignature(void);
/*
* Return non zero value if the profile data has already been
* dumped to the file.
*/
unsigned lprofProfileDumped();
void lprofSetProfileDumped();
unsigned lprofProfileDumped(void);
void lprofSetProfileDumped(void);
COMPILER_RT_VISIBILITY extern void (*FreeHook)(void *);
COMPILER_RT_VISIBILITY extern uint8_t *DynamicBufferIOBuffer;

View File

@ -54,9 +54,9 @@ void *lprofPtrFetchAdd(void **Mem, long ByteIncr);
/* Temporarily suspend SIGKILL. Return value of 1 means a restore is needed.
* Other return values mean no restore is needed.
*/
int lprofSuspendSigKill();
int lprofSuspendSigKill(void);
/* Restore previously suspended SIGKILL. */
void lprofRestoreSigKill();
void lprofRestoreSigKill(void);
#endif /* PROFILE_INSTRPROFILINGUTIL_H */

View File

@ -119,9 +119,9 @@
#ifdef __cplusplus
extern "C" {
#endif
extern bool logAPIs();
extern bool logUnwinding();
extern bool logDWARF();
extern bool logAPIs(void);
extern bool logUnwinding(void);
extern bool logDWARF(void);
#ifdef __cplusplus
}
#endif

View File

@ -23,7 +23,7 @@ extern "C" {
// implemented elsewhere.
extern struct _Unwind_FunctionContext *
__Unwind_SjLj_GetTopOfFunctionStack();
__Unwind_SjLj_GetTopOfFunctionStack(void);
extern void
__Unwind_SjLj_SetTopOfFunctionStack(struct _Unwind_FunctionContext *fc);

View File

@ -581,6 +581,8 @@ if (LLVM_ENABLE_WARNINGS AND (LLVM_COMPILER_IS_GCC_COMPATIBLE OR CLANG_CL))
# Enable -Wstring-conversion to catch misuse of string literals.
add_flag_if_supported("-Wstring-conversion" STRING_CONVERSION_FLAG)
# Enable -Wstrict-prototypes to catch incorrectly declared functions in C.
add_flag_if_supported("-Wstrict-prototypes" STRICT_PROTOTYPES_FLAG)
endif (LLVM_ENABLE_WARNINGS AND (LLVM_COMPILER_IS_GCC_COMPATIBLE OR CLANG_CL))
if (LLVM_COMPILER_IS_GCC_COMPATIBLE AND NOT LLVM_ENABLE_WARNINGS)