Sirraide 1600450f90
[Clang] Reintroduce obsolete libclang symbols to avoid an ABI break (#149079)
For more context, see
https://github.com/llvm/llvm-project/pull/119269#issuecomment-3075444493,
but briefly, when removing ARCMigrate, I also removed some symbols in
libclang, which constitutes an ABI break that we don’t want, so this pr
reintroduces the removed symbols; the declarations are marked as
deprecated for future removal, and the implementations print an error
and do nothing, which is what we used to do when ARCMigrate was
disabled.
2025-07-16 15:48:53 +02:00

49 lines
1.6 KiB
C++

//===- Obsolete.cpp - Obsolete libclang functions and types -------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===--------------------------------------------------------------------===//
//
// This file contains libclang symbols whose underlying functionality has been
// removed from Clang, but which need to be kept around so as to retain ABI
// compatibility.
//
//===--------------------------------------------------------------------===//
#include "clang-c/CXString.h"
#include "clang-c/Index.h"
#include "clang-c/Platform.h"
#include "llvm/Support/raw_ostream.h"
extern "C" {
// The functions below used to be part of the C API for ARCMigrate, which has
// since been removed from Clang; they already used to print an error if Clang
// was compiled without arcmt support, so we continue doing so.
CXRemapping clang_getRemappings(const char *) {
llvm::errs() << "error: ARCMigrate has been removed from Clang";
return nullptr;
}
CXRemapping clang_getRemappingsFromFileList(const char **, unsigned) {
llvm::errs() << "error: ARCMigrate has been removed from Clang";
return nullptr;
}
unsigned clang_remap_getNumFiles(CXRemapping) {
llvm::errs() << "error: ARCMigrate has been removed from Clang";
return 0;
}
void clang_remap_getFilenames(CXRemapping, unsigned, CXString *, CXString *) {
llvm::errs() << "error: ARCMigrate has been removed from Clang";
}
void clang_remap_dispose(CXRemapping) {
llvm::errs() << "error: ARCMigrate has been removed from Clang";
}
} // extern "C"