interface: never pass pure pointer to create_target_info
authorSven Verdoolaege <sven.verdoolaege@gmail.com>
Sun, 19 Oct 2025 16:48:55 +0000 (19 18:48 +0200)
committerSven Verdoolaege <sven.verdoolaege@gmail.com>
Sat, 22 Nov 2025 14:26:18 +0000 (22 15:26 +0100)
Optionally passing a shared_ptr was introduced in isl-0.13-116-g82b36f8283
(update for change in TargetOptions refcounting,
Sat Aug 30 20:03:44 2014 +0200), but this has been needed since clang 3.5,
which is documented as the minimal supported version.

Passing in a reference dates back from even earlier, but this has
been re-introduced in llvmorg-21-init-10058-g985410f87f2d ([clang] Hide
the `TargetOptions` pointer from `CompilerInvocation` (#106271),
Mon Apr 28 07:43:26 2025 -0700), so this variant is also kept.

Signed-off-by: Sven Verdoolaege <sven.verdoolaege@gmail.com>
interface/extract_interface.cc
m4/ax_detect_clang.m4

index ad0e132..3135acf 100644 (file)
@@ -269,16 +269,6 @@ static TargetInfo *create_target_info(CompilerInstance *Clang,
        return TargetInfo::CreateTargetInfo(Diags, TO);
 }
 
-#elif defined(CREATETARGETINFO_TAKES_POINTER)
-
-static TargetInfo *create_target_info(CompilerInstance *Clang,
-       DiagnosticsEngine &Diags)
-{
-       TargetOptions &TO = Clang->getTargetOpts();
-       TO.Triple = llvm::sys::getDefaultTargetTriple();
-       return TargetInfo::CreateTargetInfo(Diags, &TO);
-}
-
 #else
 
 static TargetInfo *create_target_info(CompilerInstance *Clang,
index 7987a8a..77fcf4d 100644 (file)
@@ -119,13 +119,6 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <clang/Basic/TargetInfo.h>]], [[
        TargetInfo::CreateTargetInfo(*Diags, TO);
 ]])], [AC_DEFINE([CREATETARGETINFO_TAKES_SHARED_PTR], [],
              [Define if TargetInfo::CreateTargetInfo takes shared_ptr])])
-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <clang/Basic/TargetInfo.h>]], [[
-       using namespace clang;
-       TargetOptions *TO;
-       DiagnosticsEngine *Diags;
-       TargetInfo::CreateTargetInfo(*Diags, TO);
-]])], [AC_DEFINE([CREATETARGETINFO_TAKES_POINTER], [],
-             [Define if TargetInfo::CreateTargetInfo takes pointer])])
 AC_EGREP_HEADER([getReturnType],
        [clang/AST/CanonicalType.h], [],
        [AC_DEFINE([getReturnType], [getResultType],