forked from OSchip/llvm-project
EE/Interpreter/ExternalFunctions.cpp: Prune "C" linkage to suppress warnings with -Wreturn-type (and MSC's w4190).
In historical reason, Interpreter's external entries had prefix "lle_X_" as C linkage, even for well-known entries in EE/Interpreter. Now, at least on ToT, they are resolved via FuncNames[] mapper. We will not need their symbols are expected to be exported any more. Clang r150128 has introduced the warning <"%0 has C-linkage specified, but returns user-defined type %1 which is incompatible with C">. llvm-svn: 151312
This commit is contained in:
parent
f62290a19b
commit
7fe000581e
|
@ -297,17 +297,6 @@ GenericValue Interpreter::callExternalFunction(Function *F,
|
||||||
// Functions "exported" to the running application...
|
// Functions "exported" to the running application...
|
||||||
//
|
//
|
||||||
|
|
||||||
// Visual Studio and Clang warn about returning GenericValue in extern "C" linkage
|
|
||||||
#ifdef _MSC_VER
|
|
||||||
#pragma warning(disable : 4190)
|
|
||||||
#endif
|
|
||||||
#ifdef __clang__
|
|
||||||
#pragma clang diagnostic push
|
|
||||||
#pragma clang diagnostic ignored "-Wreturn-type-c-linkage"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
extern "C" { // Don't add C++ manglings to llvm mangling :)
|
|
||||||
|
|
||||||
// void atexit(Function*)
|
// void atexit(Function*)
|
||||||
GenericValue lle_X_atexit(FunctionType *FT,
|
GenericValue lle_X_atexit(FunctionType *FT,
|
||||||
const std::vector<GenericValue> &Args) {
|
const std::vector<GenericValue> &Args) {
|
||||||
|
@ -473,17 +462,6 @@ GenericValue lle_X_fprintf(FunctionType *FT,
|
||||||
return GV;
|
return GV;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // End extern "C"
|
|
||||||
|
|
||||||
// Done with externals; turn the warning back on for Clang and Visual Studio
|
|
||||||
#ifdef __clang__
|
|
||||||
#pragma clang diagnostic pop
|
|
||||||
#endif
|
|
||||||
#ifdef _MSC_VER
|
|
||||||
#pragma warning(default: 4190)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
void Interpreter::initializeExternalFunctions() {
|
void Interpreter::initializeExternalFunctions() {
|
||||||
sys::ScopedLock Writer(*FunctionsLock);
|
sys::ScopedLock Writer(*FunctionsLock);
|
||||||
FuncNames["lle_X_atexit"] = lle_X_atexit;
|
FuncNames["lle_X_atexit"] = lle_X_atexit;
|
||||||
|
|
Loading…
Reference in New Issue