From dc93bf6903918e01ff051fd480ca68e4b0dfa01b Mon Sep 17 00:00:00 2001
From: Virgile Prevosto <virgile.prevosto@m4x.org>
Date: Fri, 6 Dec 2019 17:24:16 +0100
Subject: [PATCH] [cleanup] add diagnostics to ignore warning triggered by
 clang include in v7.0

---
 ACSLLexer.cpp    | 7 +++++++
 ACSLParser.cpp   | 7 +++++++
 ClangVisitor.cpp | 8 ++++++++
 Clang_utils.h    | 7 +++++++
 FramaCIRGen.cpp  | 7 +++++++
 Makefile.clang   | 3 ++-
 RTTITable.h      | 8 ++++++++
 VisitTable.h     | 8 ++++++++
 8 files changed, 54 insertions(+), 1 deletion(-)

diff --git a/ACSLLexer.cpp b/ACSLLexer.cpp
index 4a775181..3a6be1c6 100644
--- a/ACSLLexer.cpp
+++ b/ACSLLexer.cpp
@@ -25,6 +25,10 @@
 //  Implementation of the ACSL++ lexer.
 //
 
+#ifdef __GNUC__
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wclass-memaccess"
+#endif
 #include <sstream>
 #include <climits>
 #include <string>
@@ -39,6 +43,9 @@
 #include "clang/Sema/Lookup.h"
 #include "clang/Basic/TargetInfo.h"
 #include "clang/Lex/MacroArgs.h"
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
 
 #include "ACSLLexer.h"
 #include "intermediate_format.h"
diff --git a/ACSLParser.cpp b/ACSLParser.cpp
index 471a81d5..52196ba4 100644
--- a/ACSLParser.cpp
+++ b/ACSLParser.cpp
@@ -25,6 +25,10 @@
 //   Implementation of the ACSL++ parser.
 //
 
+#ifdef __GNUC__
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wclass-memaccess"
+#endif
 #include "clang/Basic/Version.h"
 #include "llvm/ADT/SmallString.h"
 #include "clang/AST/ASTContext.h"
@@ -34,6 +38,9 @@
 #include "clang/Sema/Lookup.h"
 #include "clang/Basic/TargetInfo.h"
 #include "clang/Lex/MacroArgs.h"
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
 
 #include "ACSLParser.h"
 
diff --git a/ClangVisitor.cpp b/ClangVisitor.cpp
index 086d1e7c..1633ccd0 100644
--- a/ClangVisitor.cpp
+++ b/ClangVisitor.cpp
@@ -25,6 +25,10 @@
 //   Definition of a translator clang -> intermediate_format (-> cabs -> cil).
 //
 
+#ifdef __GNUC__
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wclass-memaccess"
+#endif
 #include "clang/AST/ASTContext.h"
 #include "clang/AST/ASTConsumer.h"
 #include "clang/AST/APValue.h"
@@ -43,6 +47,10 @@
 #include <sstream>
 #include <cstddef>
 #include <list>
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
+
 #include "ClangVisitor.h"
 
 void
diff --git a/Clang_utils.h b/Clang_utils.h
index b8e0af21..4d8ffdee 100644
--- a/Clang_utils.h
+++ b/Clang_utils.h
@@ -36,10 +36,17 @@
 #include <set>
 #include <map>
 #include <functional>
+#ifdef __GNUC__
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wclass-memaccess"
+#endif
 #include "clang/Basic/Version.h"
 #include "clang/AST/ASTContext.h"
 #include "clang/AST/DeclCXX.h"
 #include "clang/AST/DeclTemplate.h"
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
 
 extern "C" {
 #include "intermediate_format.h"
diff --git a/FramaCIRGen.cpp b/FramaCIRGen.cpp
index bf324094..ca4bddb8 100644
--- a/FramaCIRGen.cpp
+++ b/FramaCIRGen.cpp
@@ -25,6 +25,10 @@
 //   Definition of a translator clang -> intermediate_format (-> cabs -> cil).
 //
 
+#ifdef __GNUC__
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wclass-memaccess"
+#endif
 #include "clang/AST/RecursiveASTVisitor.h"
 #include "clang/AST/ASTContext.h"
 #include "clang/AST/ASTConsumer.h"
@@ -48,6 +52,9 @@
 #include <sstream>
 #include <cstddef>
 #include <list>
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
 
 #include "ClangVisitor.h"
 
diff --git a/Makefile.clang b/Makefile.clang
index 9b9251a8..0233cd6b 100644
--- a/Makefile.clang
+++ b/Makefile.clang
@@ -52,7 +52,8 @@ OBJS=\
 
 DEPS=$(OBJS:.o=.d)
 CXXFLAGS?=$(CLANG_CXXFLAGS)
-CXXFLAGS+=-Wno-enum-compare -DCLANG_BIN_DIR=\"$(CLANG_BIN_DIR)\" -Wall
+CXXFLAGS+=-DCLANG_BIN_DIR=\"$(CLANG_BIN_DIR)\" \
+          -Wall -Wno-comment -Wno-enum-compare
 CFLAGS?=$(CLANG_CFLAGS)
 CFLAGS+=-Wno-enum-compare
 
diff --git a/RTTITable.h b/RTTITable.h
index 8d3dc5bf..15b039a3 100644
--- a/RTTITable.h
+++ b/RTTITable.h
@@ -28,8 +28,16 @@
 #ifndef Table_RTTIH
 #define Table_RTTIH
 
+#ifdef __GNUC__
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wclass-memaccess"
+#endif
 #include <list>
 #include "clang/AST/DeclCXX.h"
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
+
 #include "Clang_utils.h"
 
 extern "C" {
diff --git a/VisitTable.h b/VisitTable.h
index eaf4b7e0..1f0ed4c9 100644
--- a/VisitTable.h
+++ b/VisitTable.h
@@ -28,7 +28,15 @@
 #ifndef Visit_TableH
 #define Visit_TableH
 
+#ifdef __GNUC__
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wclass-memaccess"
+#endif
 #include "clang/AST/DeclCXX.h"
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
+
 #include "Clang_utils.h"
 
 extern "C" {
-- 
GitLab