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};
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};
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits