From b6d5ff18b12a5162c76eb493da97fc86de0100ad Mon Sep 17 00:00:00 2001
From: Virgile Prevosto <virgile.prevosto@m4x.org>
Date: Fri, 15 Mar 2024 14:18:45 +0100
Subject: [PATCH] [clang] Preliminary support for clang 17

---
 framaCIRGen_src/CMakeLists.txt       | 6 ++++--
 framaCIRGen_src/FramaCAttributes.cpp | 5 +++++
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/framaCIRGen_src/CMakeLists.txt b/framaCIRGen_src/CMakeLists.txt
index b4e9aa32..210e8767 100644
--- a/framaCIRGen_src/CMakeLists.txt
+++ b/framaCIRGen_src/CMakeLists.txt
@@ -28,9 +28,11 @@ set(CMAKE_CXX_STANDARD 17)
 set(CMAKE_CXX_STANDARD_REQUIRED ON)
 set(CMAKE_CXX_EXTENSIONS OFF)
 
+set(CMAKE_BUILD_TYPE Debug)
+
 find_program(LLVM_CONFIG
-  NAMES $ENV{OPAM_LLVM_CONFIG} llvm-config llvm-config-15 llvm-config-14
-        llvm-config-13 llvm-config-12 llvm-config-11
+  NAMES $ENV{OPAM_LLVM_CONFIG} llvm-config llvm-config-17 llvm-config-16
+  llvm-config-15 llvm-config-14 llvm-config-13 llvm-config-12 llvm-config-11
   REQUIRED)
 
 execute_process(COMMAND ${LLVM_CONFIG} --cmakedir OUTPUT_VARIABLE CMAKE_LLVM_PREFIX)
diff --git a/framaCIRGen_src/FramaCAttributes.cpp b/framaCIRGen_src/FramaCAttributes.cpp
index 53914174..335bb046 100644
--- a/framaCIRGen_src/FramaCAttributes.cpp
+++ b/framaCIRGen_src/FramaCAttributes.cpp
@@ -27,6 +27,7 @@
 
 #include "clang/AST/ASTContext.h"
 #include "clang/AST/Attr.h"
+#include "clang/Basic/Version.h"
 #include "clang/Sema/ParsedAttr.h"
 #include "clang/Sema/Sema.h"
 #include "clang/Sema/SemaDiagnostic.h"
@@ -64,7 +65,11 @@ struct FramaCBuiltinAttrInfo : public ParsedAttrInfo {
       return AttributeNotApplied;
     }
     // Attach an annotate attribute to the Decl.
+#if CLANG_VERSION_MAJOR >= 17
+    D->addAttr(AnnotateAttr::Create(S.Context, "FC_BUILTIN", Attr));
+#else
     D->addAttr(AnnotateAttr::Create(S.Context, "FC_BUILTIN", Attr.getRange()));
+#endif
     return AttributeApplied;
   }
 };
-- 
GitLab