summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp b/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
index 40e12cc98f..c5ed6d16b2 100644
--- a/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
+++ b/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
@@ -297,10 +297,14 @@ GenericValue Interpreter::callExternalFunction(Function *F,
// Functions "exported" to the running application...
//
-// Visual Studio warns about returning GenericValue in extern "C" linkage
+// 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"
+#endif
extern "C" { // Don't add C++ manglings to llvm mangling :)
@@ -471,7 +475,10 @@ GenericValue lle_X_fprintf(FunctionType *FT,
} // End extern "C"
-// Done with externals; turn the warning back on
+// 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