]> granicus.if.org Git - clang/commitdiff
[NFC] Silence warning about ptr-to-func to ptr-to-obj cast in clang-fuzzer/handle...
authorAndrei Elovikov <andrei.elovikov@intel.com>
Wed, 1 Aug 2018 13:34:18 +0000 (13:34 +0000)
committerAndrei Elovikov <andrei.elovikov@intel.com>
Wed, 1 Aug 2018 13:34:18 +0000 (13:34 +0000)
Summary:
I don't have the whole list of GCC binaries available so I determined the exact
version where the warning disappeared via:

https://github.com/gcc-mirror/gcc/blob/gcc-4_9_0-release/gcc/cp/typeck.c#L6863
https://github.com/gcc-mirror/gcc/blob/gcc-4_8_5-release/gcc/cp/typeck.c#L6652

Reviewers: emmettneyman, erichkeane

Reviewed By: emmettneyman, erichkeane

Subscribers: cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@338551 91177308-0d34-0410-b5e6-96231b3b80d8

tools/clang-fuzzer/handle-llvm/handle_llvm.cpp

index ef544ae711abaead329c58678562cad58de09796..860ffa00b8e72332143dd96a296a961459eaf0e8 100644 (file)
@@ -149,7 +149,23 @@ void CreateAndRunJITFun(const std::string &IR, CodeGenOpt::Level OLvl) {
   EE->runStaticConstructorsDestructors(false);
 
   typedef void (*func)(int*, int*, int*, int);
-  func f = reinterpret_cast<func>(EE->getPointerToFunction(EntryFunc)); 
+#if defined(__GNUC__) && !defined(__clang) &&                                  \
+    ((__GNUC__ == 4) && (__GNUC_MINOR__ < 9))
+// Silence
+//
+//   warning: ISO C++ forbids casting between pointer-to-function and
+//   pointer-to-object [-Wpedantic]
+//
+// Since C++11 this casting is conditionally supported and GCC versions
+// starting from 4.9.0 don't warn about the cast.
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic"
+#endif
+  func f = reinterpret_cast<func>(EE->getPointerToFunction(EntryFunc));
+#if defined(__GNUC__) && !defined(__clang) &&                                  \
+    ((__GNUC__ == 4) && (__GNUC_MINOR__ < 9))
+#pragma GCC diagnostic pop
+#endif
 
   // Define some dummy arrays to use an input for now
   int a[] = {1};