[PATCH] D50056: [NFC] Silence warning about ptr-to-func to ptr-to-obj cast in clang-fuzzer/handle-llvm/handle_llvm.cpp.

Andrei Elovikov via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Jul 31 05:46:41 PDT 2018


a.elovikov created this revision.
a.elovikov added reviewers: emmettneyman, erichkeane.

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


https://reviews.llvm.org/D50056

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


Index: clang/tools/clang-fuzzer/handle-llvm/handle_llvm.cpp
===================================================================
--- clang/tools/clang-fuzzer/handle-llvm/handle_llvm.cpp
+++ clang/tools/clang-fuzzer/handle-llvm/handle_llvm.cpp
@@ -149,7 +149,21 @@
   EE->runStaticConstructorsDestructors(false);
 
   typedef void (*func)(int*, int*, int*, int);
-  func f = reinterpret_cast<func>(EE->getPointerToFunction(EntryFunc)); 
+#if defined(__GNUC__) && ((__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__) && ((__GNUC__ == 4) && (__GNUC_MINOR__ < 9))
+  #pragma GCC diagnostic pop
+#endif
 
   // Define some dummy arrays to use an input for now
   int a[] = {1};


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D50056.158228.patch
Type: text/x-patch
Size: 1109 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180731/4ccc0864/attachment.bin>


More information about the cfe-commits mailing list