From: Andrei Elovikov Date: Wed, 1 Aug 2018 13:34:18 +0000 (+0000) Subject: [NFC] Silence warning about ptr-to-func to ptr-to-obj cast in clang-fuzzer/handle... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fea50aca369494586c9bd2468541ff682fca7319;p=clang [NFC] Silence warning about ptr-to-func to ptr-to-obj cast in clang-fuzzer/handle-llvm/handle_llvm.cpp. 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 --- diff --git a/tools/clang-fuzzer/handle-llvm/handle_llvm.cpp b/tools/clang-fuzzer/handle-llvm/handle_llvm.cpp index ef544ae711..860ffa00b8 100644 --- a/tools/clang-fuzzer/handle-llvm/handle_llvm.cpp +++ b/tools/clang-fuzzer/handle-llvm/handle_llvm.cpp @@ -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(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(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};