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">.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151312 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
NAKAMURA Takumi 2012-02-24 00:19:58 +00:00
parent db9538923e
commit 423cbc5144

View File

@ -297,17 +297,6 @@ GenericValue Interpreter::callExternalFunction(Function *F,
// 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*)
GenericValue lle_X_atexit(FunctionType *FT,
const std::vector<GenericValue> &Args) {
@ -473,17 +462,6 @@ GenericValue lle_X_fprintf(FunctionType *FT,
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() {
sys::ScopedLock Writer(*FunctionsLock);
FuncNames["lle_X_atexit"] = lle_X_atexit;