| // Copyright (c) 2019 Google LLC |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| #ifndef SOURCE_FUZZ_SPIRVFUZZ_PROTOBUFS_H_ |
| #define SOURCE_FUZZ_SPIRVFUZZ_PROTOBUFS_H_ |
| |
| // This header file serves to act as a barrier between the protobuf header |
| // files and files that include them. It uses compiler pragmas to disable |
| // diagnostics, in order to ignore warnings generated during the processing |
| // of these header files without having to compromise on freedom from warnings |
| // in the rest of the project. |
| |
| #ifndef GOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE |
| #define GOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE 1 |
| #endif |
| |
| #if defined(__clang__) |
| #pragma clang diagnostic push |
| #pragma clang diagnostic ignored "-Wunknown-warning-option" // Must come first |
| #pragma clang diagnostic ignored "-Wreserved-identifier" |
| #pragma clang diagnostic ignored "-Wshadow" |
| #pragma clang diagnostic ignored "-Wsuggest-destructor-override" |
| #pragma clang diagnostic ignored "-Wunused-parameter" |
| #pragma clang diagnostic ignored "-Wc++98-compat-extra-semi" |
| #pragma clang diagnostic ignored "-Wshorten-64-to-32" |
| #elif defined(__GNUC__) |
| #pragma GCC diagnostic push |
| #pragma GCC diagnostic ignored "-Wconversion" |
| #pragma GCC diagnostic ignored "-Wshadow" |
| #pragma GCC diagnostic ignored "-Wunused-parameter" |
| #elif defined(_MSC_VER) |
| #pragma warning(push) |
| #pragma warning(disable : 4244) |
| #endif |
| |
| // The following should be the only place in the project where protobuf files |
| // are directly included. This is so that they can be compiled in a manner |
| // where warnings are ignored. |
| |
| #include "google/protobuf/util/json_util.h" |
| #include "google/protobuf/util/message_differencer.h" |
| #include "source/fuzz/protobufs/spvtoolsfuzz.pb.h" |
| |
| #if defined(__clang__) |
| #pragma clang diagnostic pop |
| #elif defined(__GNUC__) |
| #pragma GCC diagnostic pop |
| #elif defined(_MSC_VER) |
| #pragma warning(pop) |
| #endif |
| |
| #endif // SOURCE_FUZZ_SPIRVFUZZ_PROTOBUFS_H_ |