llvm-project/llvm/unittests/IR/CoreBindings.cpp
Wenzel Jakob cb5b25c587 [llvm-c] Added a C-API binding to query the LLVM version
The LLVM C bindings currently offer no way to query the version string
dynamically. This is a useful feature in situations where a program
isn't compiled against a specific version of LLVM but rather loads it
dynamically (e.g. using dlopen()).

In situations where the shared library filename doesn't reveal the
version (e.g. LLVM-C.dll) and to adapt to version-specific API
differences, it is then useful to be able to query the version string by
calling the proposed LLVMGetVersion function.

Differential Revision: https://reviews.llvm.org/D139381
2022-12-07 11:18:32 +01:00

27 lines
853 B
C++

//===- llvm/unittest/IR/CoreBindings.cpp - Tests for C-API bindings -------===//
//
// 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
//
//===----------------------------------------------------------------------===//
#include "llvm-c/Core.h"
#include "llvm/Config/llvm-config.h"
#include "gtest/gtest.h"
namespace {
TEST(CoreBindings, VersionTest) {
// Test ability to ignore output parameters
LLVMGetVersion(nullptr, nullptr, nullptr);
unsigned Major, Minor, Patch;
LLVMGetVersion(&Major, &Minor, &Patch);
EXPECT_EQ(Major, (unsigned)LLVM_VERSION_MAJOR);
EXPECT_EQ(Minor, (unsigned)LLVM_VERSION_MINOR);
EXPECT_EQ(Patch, (unsigned)LLVM_VERSION_PATCH);
}
} // end anonymous namespace