From df9418c3cd5f7378cb8a0023ae4d8dc06bd944df Mon Sep 17 00:00:00 2001 From: Evgeny Mankov Date: Wed, 24 Apr 2019 20:35:52 +0300 Subject: [PATCH] [HIPIFY][fix][#204] Suppress warning message: #pragma once in main file --- hipamd/hipify-clang/src/LLVMCompat.cpp | 8 ++++++++ hipamd/hipify-clang/src/LLVMCompat.h | 2 ++ hipamd/hipify-clang/src/main.cpp | 3 +++ 3 files changed, 13 insertions(+) diff --git a/hipamd/hipify-clang/src/LLVMCompat.cpp b/hipamd/hipify-clang/src/LLVMCompat.cpp index 95c8ab7837..87dedc630e 100644 --- a/hipamd/hipify-clang/src/LLVMCompat.cpp +++ b/hipamd/hipify-clang/src/LLVMCompat.cpp @@ -110,4 +110,12 @@ std::error_code real_path(const Twine &path, SmallVectorImpl &output, #endif } +bool pragma_once_outside_header() { +#if LLVM_VERSION_MAJOR < 4 + return false; +#else + return true; +#endif +} + } // namespace llcompat diff --git a/hipamd/hipify-clang/src/LLVMCompat.h b/hipamd/hipify-clang/src/LLVMCompat.h index 98ff66fb41..069aeb91a3 100644 --- a/hipamd/hipify-clang/src/LLVMCompat.h +++ b/hipamd/hipify-clang/src/LLVMCompat.h @@ -81,4 +81,6 @@ void EnterPreprocessorTokenStream(clang::Preprocessor& _pp, std::error_code real_path(const Twine &path, SmallVectorImpl &output, bool expand_tilde = false); +bool pragma_once_outside_header(); + } // namespace llcompat diff --git a/hipamd/hipify-clang/src/main.cpp b/hipamd/hipify-clang/src/main.cpp index 3b832deb8f..ae22f83ce0 100644 --- a/hipamd/hipify-clang/src/main.cpp +++ b/hipamd/hipify-clang/src/main.cpp @@ -222,6 +222,9 @@ int main(int argc, const char **argv) { #if defined(HIPIFY_CLANG_RES) Tool.appendArgumentsAdjuster(ct::getInsertArgumentAdjuster("-resource-dir=" HIPIFY_CLANG_RES)); #endif + if (llcompat::pragma_once_outside_header()) { + Tool.appendArgumentsAdjuster(ct::getInsertArgumentAdjuster("-Wno-pragma-once-outside-header", ct::ArgumentInsertPosition::BEGIN)); + } if (!MacroNames.empty()) { for (std::string s : MacroNames) { Tool.appendArgumentsAdjuster(ct::getInsertArgumentAdjuster("-D", ct::ArgumentInsertPosition::END));