From f117b5fb68032f0598aeb18f2a62fb1a32a1e06b Mon Sep 17 00:00:00 2001 From: Compute-Runtime-Validation Date: Thu, 17 Oct 2024 02:39:48 +0200 Subject: [PATCH] Revert "fix: correct loading L0 loader functions" This reverts commit 9c7b3c5e190b45f6d0b0efe99536007e6bde7fc1. Signed-off-by: Compute-Runtime-Validation --- level_zero/core/source/global_teardown.cpp | 4 +- .../sources/device/test_l0_device.cpp | 2 +- .../unit_tests/sources/rtas/test_rtas.cpp | 4 +- .../sysman_firmware_util_imp.cpp | 5 +-- .../linux/test_fw_util_linux.cpp | 2 + .../firmware_util/mock_fw_util_fixture.h | 4 +- .../metrics/metric_oa_enumeration_imp.cpp | 2 +- .../source/metrics/metric_oa_query_imp.cpp | 2 +- .../firmware_util/firmware_util_imp.cpp | 5 +-- .../metrics/test_metric_oa_initialization.cpp | 6 +-- .../linux/test_fw_util_linux.cpp | 2 + .../firmware_util/mock_fw_util_fixture.h | 2 +- .../sharings/gl/linux/gl_sharing_linux.cpp | 2 +- .../gl/windows/gl_sharing_windows.cpp | 4 +- .../helpers/windows/gl_helper_tests.cpp | 6 +-- .../unit_test/sharings/gl/gl_dll_helper.h | 2 +- .../source/decoder/iga_wrapper.cpp | 2 +- .../source/ocloc_fcl_facade.cpp | 2 +- .../source/ocloc_igc_facade.cpp | 2 +- .../utilities/windows/seh_exception.cpp | 2 +- .../compiler_interface/compiler_interface.inl | 4 +- .../os_interface/linux/os_library_linux.cpp | 17 +++++---- .../os_interface/linux/os_library_linux.h | 2 +- .../source/os_interface/metrics_library.cpp | 2 +- shared/source/os_interface/os_library.cpp | 2 + shared/source/os_interface/os_library.h | 15 ++------ .../windows/gmm_interface_win.cpp | 2 +- .../os_interface/windows/os_library_win.cpp | 30 ++++++--------- .../os_interface/windows/os_library_win.h | 4 +- .../windows/wddm/adapter_factory_dxcore.cpp | 2 +- shared/source/pin/pin.cpp | 2 +- shared/test/common/mocks/mock_os_library.h | 5 +-- .../linux/sys_calls_linux_ult.cpp | 9 ----- .../os_interface/linux/sys_calls_linux_ult.h | 2 - .../linux/os_library_linux_tests.cpp | 36 +++--------------- .../os_interface/os_library_tests.cpp | 16 +++----- .../windows/os_library_win_tests.cpp | 37 +++---------------- 37 files changed, 84 insertions(+), 165 deletions(-) diff --git a/level_zero/core/source/global_teardown.cpp b/level_zero/core/source/global_teardown.cpp index a7d1391f1c..8ed1144f99 100644 --- a/level_zero/core/source/global_teardown.cpp +++ b/level_zero/core/source/global_teardown.cpp @@ -19,9 +19,7 @@ decltype(&zelLoaderTranslateHandle) loaderTranslateHandleFunc = nullptr; decltype(&zelSetDriverTeardown) setDriverTeardownFunc = nullptr; void globalDriverSetup() { - NEO::OsLibraryCreateProperties loaderLibraryProperties("ze_loader.dll"); - loaderLibraryProperties.performSelfLoad = true; - std::unique_ptr loaderLibrary = std::unique_ptr{NEO::OsLibrary::loadFunc(loaderLibraryProperties)}; + std::unique_ptr loaderLibrary = std::unique_ptr{NEO::OsLibrary::loadFunc("")}; loaderTranslateHandleFunc = reinterpret_cast(loaderLibrary->getProcAddress("zelLoaderTranslateHandle")); setDriverTeardownFunc = reinterpret_cast(loaderLibrary->getProcAddress("zelSetDriverTeardown")); } diff --git a/level_zero/core/test/unit_tests/sources/device/test_l0_device.cpp b/level_zero/core/test/unit_tests/sources/device/test_l0_device.cpp index 69ad2f2b87..db9e767f1e 100644 --- a/level_zero/core/test/unit_tests/sources/device/test_l0_device.cpp +++ b/level_zero/core/test/unit_tests/sources/device/test_l0_device.cpp @@ -6084,7 +6084,7 @@ struct RTASDeviceTest : public ::testing::Test { std::string getFullPath() override { return std::string(); } - static OsLibrary *load(const NEO::OsLibraryCreateProperties &properties) { + static OsLibrary *load(const std::string &name) { if (failLibraryLoad) { return nullptr; } diff --git a/level_zero/core/test/unit_tests/sources/rtas/test_rtas.cpp b/level_zero/core/test/unit_tests/sources/rtas/test_rtas.cpp index 39888e030f..23cbd52929 100644 --- a/level_zero/core/test/unit_tests/sources/rtas/test_rtas.cpp +++ b/level_zero/core/test/unit_tests/sources/rtas/test_rtas.cpp @@ -221,7 +221,7 @@ struct MockRTASOsLibrary : public OsLibrary { std::string getFullPath() override { return std::string(); } - static OsLibrary *load(const OsLibraryCreateProperties &properties) { + static OsLibrary *load(const std::string &name) { if (mockLoad == true) { auto ptr = new (std::nothrow) MockRTASOsLibrary(); return ptr; @@ -264,7 +264,7 @@ TEST_F(RTASTest, GivenLibraryLoadsSymbolsAndUnderlyingFunctionsSucceedThenSucces std::string getFullPath() override { return std::string(); } - static OsLibrary *load(const OsLibraryCreateProperties &properties) { + static OsLibrary *load(const std::string &name) { auto ptr = new (std::nothrow) MockSymbolsLoadedOsLibrary(); return ptr; } diff --git a/level_zero/sysman/source/shared/firmware_util/sysman_firmware_util_imp.cpp b/level_zero/sysman/source/shared/firmware_util/sysman_firmware_util_imp.cpp index 0731b47473..2dbebd6c39 100644 --- a/level_zero/sysman/source/shared/firmware_util/sysman_firmware_util_imp.cpp +++ b/level_zero/sysman/source/shared/firmware_util/sysman_firmware_util_imp.cpp @@ -208,9 +208,8 @@ FirmwareUtilImp::~FirmwareUtilImp() { FirmwareUtil *FirmwareUtil::create(uint16_t domain, uint8_t bus, uint8_t device, uint8_t function) { FirmwareUtilImp *pFwUtilImp = new FirmwareUtilImp(domain, bus, device, function); UNRECOVERABLE_IF(nullptr == pFwUtilImp); - NEO::OsLibraryCreateProperties properties(FirmwareUtilImp::fwUtilLibraryName); - properties.customLoadFlags = &FirmwareUtilImp::fwUtilLoadFlags; - pFwUtilImp->libraryHandle = NEO::OsLibrary::loadFunc(properties); + NEO::OsLibrary::loadFlagsOverwrite = &FirmwareUtilImp::fwUtilLoadFlags; + pFwUtilImp->libraryHandle = NEO::OsLibrary::loadFunc(FirmwareUtilImp::fwUtilLibraryName); if (pFwUtilImp->libraryHandle == nullptr || pFwUtilImp->loadEntryPoints() == false || pFwUtilImp->fwDeviceInit() != ZE_RESULT_SUCCESS) { if (nullptr != pFwUtilImp->libraryHandle) { delete pFwUtilImp->libraryHandle; diff --git a/level_zero/sysman/test/unit_tests/sources/firmware_util/linux/test_fw_util_linux.cpp b/level_zero/sysman/test/unit_tests/sources/firmware_util/linux/test_fw_util_linux.cpp index 38fb671667..5c649f8b68 100644 --- a/level_zero/sysman/test/unit_tests/sources/firmware_util/linux/test_fw_util_linux.cpp +++ b/level_zero/sysman/test/unit_tests/sources/firmware_util/linux/test_fw_util_linux.cpp @@ -34,6 +34,8 @@ TEST(FwUtilTest, GivenLibraryWasSetWhenCreatingFirmwareUtilInterfaceThenLibraryI VariableBackup dlOpenCalledBackup{&dlOpenCalled, false}; VariableBackup dlOpenFlagsBackup{&dlOpenFlags, 0}; + auto flags = RTLD_LAZY; + NEO::OsLibrary::loadFlagsOverwrite = &flags; L0::Sysman::FirmwareUtil *pFwUtil = L0::Sysman::FirmwareUtil::create(0, 0, 0, 0); EXPECT_EQ(dlOpenCalled, true); EXPECT_EQ(dlOpenFlags, RTLD_LAZY); diff --git a/level_zero/sysman/test/unit_tests/sources/firmware_util/mock_fw_util_fixture.h b/level_zero/sysman/test/unit_tests/sources/firmware_util/mock_fw_util_fixture.h index 421ad2623d..84ce9ea49e 100644 --- a/level_zero/sysman/test/unit_tests/sources/firmware_util/mock_fw_util_fixture.h +++ b/level_zero/sysman/test/unit_tests/sources/firmware_util/mock_fw_util_fixture.h @@ -43,6 +43,8 @@ struct MockFwUtilInterface : public L0::Sysman::FirmwareUtil { struct MockFwUtilOsLibrary : public OsLibrary { public: static bool mockLoad; + MockFwUtilOsLibrary(const std::string &name, std::string *errorValue) { + } MockFwUtilOsLibrary() {} ~MockFwUtilOsLibrary() override = default; void *getProcAddress(const std::string &procName) override { @@ -59,7 +61,7 @@ struct MockFwUtilOsLibrary : public OsLibrary { std::string getFullPath() override { return std::string(); } - static OsLibrary *load(const OsLibraryCreateProperties &properties) { + static OsLibrary *load(const std::string &name) { if (mockLoad == true) { auto ptr = new (std::nothrow) MockFwUtilOsLibrary(); return ptr; diff --git a/level_zero/tools/source/metrics/metric_oa_enumeration_imp.cpp b/level_zero/tools/source/metrics/metric_oa_enumeration_imp.cpp index 1ad9725e15..06cc50923b 100644 --- a/level_zero/tools/source/metrics/metric_oa_enumeration_imp.cpp +++ b/level_zero/tools/source/metrics/metric_oa_enumeration_imp.cpp @@ -114,7 +114,7 @@ ze_result_t MetricEnumeration::loadMetricsDiscovery() { getMetricsDiscoveryFilename(libnames); for (auto &name : libnames) { - hMetricsDiscovery.reset(NEO::OsLibrary::loadFunc({name})); + hMetricsDiscovery.reset(NEO::OsLibrary::loadFunc(name)); // Load exported functions. if (hMetricsDiscovery) { diff --git a/level_zero/tools/source/metrics/metric_oa_query_imp.cpp b/level_zero/tools/source/metrics/metric_oa_query_imp.cpp index 1a2ba4119e..8d5a44b3d3 100644 --- a/level_zero/tools/source/metrics/metric_oa_query_imp.cpp +++ b/level_zero/tools/source/metrics/metric_oa_query_imp.cpp @@ -179,7 +179,7 @@ void MetricsLibrary::release() { bool MetricsLibrary::load() { // Load library. - handle = NEO::OsLibrary::loadFunc({getFilename()}); + handle = NEO::OsLibrary::loadFunc(getFilename()); // Load exported functions. if (handle) { diff --git a/level_zero/tools/source/sysman/firmware_util/firmware_util_imp.cpp b/level_zero/tools/source/sysman/firmware_util/firmware_util_imp.cpp index 085afd958a..d9f08db4c5 100644 --- a/level_zero/tools/source/sysman/firmware_util/firmware_util_imp.cpp +++ b/level_zero/tools/source/sysman/firmware_util/firmware_util_imp.cpp @@ -192,9 +192,8 @@ FirmwareUtilImp::~FirmwareUtilImp() { FirmwareUtil *FirmwareUtil::create(uint16_t domain, uint8_t bus, uint8_t device, uint8_t function) { FirmwareUtilImp *pFwUtilImp = new FirmwareUtilImp(domain, bus, device, function); UNRECOVERABLE_IF(nullptr == pFwUtilImp); - NEO::OsLibraryCreateProperties properties(FirmwareUtilImp::fwUtilLibraryName); - properties.customLoadFlags = &FirmwareUtilImp::fwUtilLoadFlags; - pFwUtilImp->libraryHandle = NEO::OsLibrary::loadFunc(properties); + NEO::OsLibrary::loadFlagsOverwrite = &FirmwareUtilImp::fwUtilLoadFlags; + pFwUtilImp->libraryHandle = NEO::OsLibrary::loadFunc(FirmwareUtilImp::fwUtilLibraryName); if (pFwUtilImp->libraryHandle == nullptr || pFwUtilImp->loadEntryPoints() == false || pFwUtilImp->fwDeviceInit() != ZE_RESULT_SUCCESS) { if (nullptr != pFwUtilImp->libraryHandle) { delete pFwUtilImp->libraryHandle; diff --git a/level_zero/tools/test/unit_tests/sources/metrics/test_metric_oa_initialization.cpp b/level_zero/tools/test/unit_tests/sources/metrics/test_metric_oa_initialization.cpp index 618cefbe10..b316d96431 100644 --- a/level_zero/tools/test/unit_tests/sources/metrics/test_metric_oa_initialization.cpp +++ b/level_zero/tools/test/unit_tests/sources/metrics/test_metric_oa_initialization.cpp @@ -20,7 +20,7 @@ namespace ult { class MockOsLibrary : public NEO::OsLibrary { public: - MockOsLibrary() { + MockOsLibrary(const std::string &name, std::string *errorValue) { } void *getProcAddress(const std::string &procName) override { @@ -35,8 +35,8 @@ class MockOsLibrary : public NEO::OsLibrary { return std::string(); } - static OsLibrary *load(const OsLibraryCreateProperties &properties) { - auto ptr = new (std::nothrow) MockOsLibrary(); + static OsLibrary *load(const std::string &name) { + auto ptr = new (std::nothrow) MockOsLibrary(name, nullptr); if (ptr == nullptr) { return nullptr; } diff --git a/level_zero/tools/test/unit_tests/sources/sysman/firmware_util/linux/test_fw_util_linux.cpp b/level_zero/tools/test/unit_tests/sources/sysman/firmware_util/linux/test_fw_util_linux.cpp index 38fb671667..5c649f8b68 100644 --- a/level_zero/tools/test/unit_tests/sources/sysman/firmware_util/linux/test_fw_util_linux.cpp +++ b/level_zero/tools/test/unit_tests/sources/sysman/firmware_util/linux/test_fw_util_linux.cpp @@ -34,6 +34,8 @@ TEST(FwUtilTest, GivenLibraryWasSetWhenCreatingFirmwareUtilInterfaceThenLibraryI VariableBackup dlOpenCalledBackup{&dlOpenCalled, false}; VariableBackup dlOpenFlagsBackup{&dlOpenFlags, 0}; + auto flags = RTLD_LAZY; + NEO::OsLibrary::loadFlagsOverwrite = &flags; L0::Sysman::FirmwareUtil *pFwUtil = L0::Sysman::FirmwareUtil::create(0, 0, 0, 0); EXPECT_EQ(dlOpenCalled, true); EXPECT_EQ(dlOpenFlags, RTLD_LAZY); diff --git a/level_zero/tools/test/unit_tests/sources/sysman/firmware_util/mock_fw_util_fixture.h b/level_zero/tools/test/unit_tests/sources/sysman/firmware_util/mock_fw_util_fixture.h index 2cbde504f3..7b6277f3d1 100644 --- a/level_zero/tools/test/unit_tests/sources/sysman/firmware_util/mock_fw_util_fixture.h +++ b/level_zero/tools/test/unit_tests/sources/sysman/firmware_util/mock_fw_util_fixture.h @@ -61,7 +61,7 @@ struct MockFwUtilOsLibrary : public OsLibrary { std::string getFullPath() override { return std::string(); } - static OsLibrary *load(const OsLibraryCreateProperties &properties) { + static OsLibrary *load(const std::string &name) { if (mockLoad == true) { auto ptr = new (std::nothrow) MockFwUtilOsLibrary(); return ptr; diff --git a/opencl/source/sharings/gl/linux/gl_sharing_linux.cpp b/opencl/source/sharings/gl/linux/gl_sharing_linux.cpp index f3cd5a1452..719fcc5794 100644 --- a/opencl/source/sharings/gl/linux/gl_sharing_linux.cpp +++ b/opencl/source/sharings/gl/linux/gl_sharing_linux.cpp @@ -95,7 +95,7 @@ void GLSharingFunctionsLinux::removeGlArbSyncEventMapping(Event &baseEvent) { } GLboolean GLSharingFunctionsLinux::initGLFunctions() { - std::unique_ptr dynLibrary(OsLibrary::loadFunc({""})); + std::unique_ptr dynLibrary(OsLibrary::loadFunc("")); GlFunctionHelper glXGetProc(dynLibrary.get(), "glXGetProcAddress"); if (glXGetProc.ready()) { diff --git a/opencl/source/sharings/gl/windows/gl_sharing_windows.cpp b/opencl/source/sharings/gl/windows/gl_sharing_windows.cpp index fbc598e01d..11d45a0a02 100644 --- a/opencl/source/sharings/gl/windows/gl_sharing_windows.cpp +++ b/opencl/source/sharings/gl/windows/gl_sharing_windows.cpp @@ -29,7 +29,7 @@ GLSharingFunctionsWindows::~GLSharingFunctionsWindows() { } bool GLSharingFunctionsWindows::isGlSharingEnabled() { - static bool oglLibAvailable = std::unique_ptr(OsLibrary::loadFunc({Os::openglDllName})).get() != nullptr; + static bool oglLibAvailable = std::unique_ptr(OsLibrary::loadFunc(Os::openglDllName)).get() != nullptr; return oglLibAvailable; } @@ -128,7 +128,7 @@ void GLSharingFunctionsWindows::removeGlArbSyncEventMapping(Event &baseEvent) { } GLboolean GLSharingFunctionsWindows::initGLFunctions() { - glLibrary.reset(OsLibrary::loadFunc({Os::openglDllName})); + glLibrary.reset(OsLibrary::loadFunc(Os::openglDllName)); if (glLibrary->isLoaded()) { GlFunctionHelper wglLibrary(glLibrary.get(), "wglGetProcAddress"); diff --git a/opencl/test/unit_test/helpers/windows/gl_helper_tests.cpp b/opencl/test/unit_test/helpers/windows/gl_helper_tests.cpp index 818518bb43..4441fee73f 100644 --- a/opencl/test/unit_test/helpers/windows/gl_helper_tests.cpp +++ b/opencl/test/unit_test/helpers/windows/gl_helper_tests.cpp @@ -26,7 +26,7 @@ class GlFunctionHelperMock : public GlFunctionHelper { }; TEST(GlFunctionHelper, whenCreateGlFunctionHelperThenSetGlFunctionPtrToLoadAnotherFunctions) { - std::unique_ptr glLibrary(OsLibrary::loadFunc({"mock_opengl32.dll"})); + std::unique_ptr glLibrary(OsLibrary::loadFunc("mock_opengl32.dll")); EXPECT_TRUE(glLibrary->isLoaded()); GlFunctionHelperMock loader(glLibrary.get(), "mockLoader"); funcType function1 = ConvertibleProcAddr{reinterpret_cast(loader.glFunctionPtr("realFunction"))}; @@ -35,7 +35,7 @@ TEST(GlFunctionHelper, whenCreateGlFunctionHelperThenSetGlFunctionPtrToLoadAnoth } TEST(GlFunctionHelper, givenNonExistingFunctionNameWhenCreateGlFunctionHelperThenNullptr) { - std::unique_ptr glLibrary(OsLibrary::loadFunc({"mock_opengl32.dll"})); + std::unique_ptr glLibrary(OsLibrary::loadFunc("mock_opengl32.dll")); EXPECT_TRUE(glLibrary->isLoaded()); GlFunctionHelper loader(glLibrary.get(), "mockLoader"); funcType function = loader["nonExistingFunction"]; @@ -43,7 +43,7 @@ TEST(GlFunctionHelper, givenNonExistingFunctionNameWhenCreateGlFunctionHelperThe } TEST(GlFunctionHelper, givenRealFunctionNameWhenCreateGlFunctionHelperThenGetPointerToAppropriateFunction) { - std::unique_ptr glLibrary(OsLibrary::loadFunc({"mock_opengl32.dll"})); + std::unique_ptr glLibrary(OsLibrary::loadFunc("mock_opengl32.dll")); EXPECT_TRUE(glLibrary->isLoaded()); GlFunctionHelper loader(glLibrary.get(), "mockLoader"); funcType function = loader["realFunction"]; diff --git a/opencl/test/unit_test/sharings/gl/gl_dll_helper.h b/opencl/test/unit_test/sharings/gl/gl_dll_helper.h index 61e8b3950b..48280cddcd 100644 --- a/opencl/test/unit_test/sharings/gl/gl_dll_helper.h +++ b/opencl/test/unit_test/sharings/gl/gl_dll_helper.h @@ -38,7 +38,7 @@ using setGLMockValue = void (*)(GLMockReturnedValues); struct GlDllHelper { public: GlDllHelper() { - glDllLoad.reset(OsLibrary::loadFunc({Os::openglDllName})); + glDllLoad.reset(OsLibrary::loadFunc(Os::openglDllName)); if (glDllLoad) { glSetString = (*glDllLoad)["glSetString"]; UNRECOVERABLE_IF(glSetString == nullptr); diff --git a/shared/offline_compiler/source/decoder/iga_wrapper.cpp b/shared/offline_compiler/source/decoder/iga_wrapper.cpp index 465a3d13c0..828e3c1357 100644 --- a/shared/offline_compiler/source/decoder/iga_wrapper.cpp +++ b/shared/offline_compiler/source/decoder/iga_wrapper.cpp @@ -42,7 +42,7 @@ struct IgaWrapper::Impl { iga.optsContext.cb = sizeof(igaLib.optsContext); iga.optsContext.gen = igaGen; - iga.library.reset(NEO::OsLibrary::loadFunc({Os::igaDllName})); + iga.library.reset(NEO::OsLibrary::loadFunc(Os::igaDllName)); if (iga.library == nullptr) { return; } diff --git a/shared/offline_compiler/source/ocloc_fcl_facade.cpp b/shared/offline_compiler/source/ocloc_fcl_facade.cpp index 3ded79f7e1..f60d2fa935 100644 --- a/shared/offline_compiler/source/ocloc_fcl_facade.cpp +++ b/shared/offline_compiler/source/ocloc_fcl_facade.cpp @@ -81,7 +81,7 @@ int OclocFclFacade::initialize(const HardwareInfo &hwInfo) { } std::unique_ptr OclocFclFacade::loadFclLibrary() const { - return std::unique_ptr{OsLibrary::loadFunc({Os::frontEndDllName})}; + return std::unique_ptr{OsLibrary::loadFunc(Os::frontEndDllName)}; } CIF::CreateCIFMainFunc_t OclocFclFacade::loadCreateFclMainFunction() const { diff --git a/shared/offline_compiler/source/ocloc_igc_facade.cpp b/shared/offline_compiler/source/ocloc_igc_facade.cpp index 4221385326..34765527f5 100644 --- a/shared/offline_compiler/source/ocloc_igc_facade.cpp +++ b/shared/offline_compiler/source/ocloc_igc_facade.cpp @@ -112,7 +112,7 @@ int OclocIgcFacade::initialize(const HardwareInfo &hwInfo) { } std::unique_ptr OclocIgcFacade::loadIgcLibrary() const { - return std::unique_ptr{OsLibrary::loadFunc({Os::igcDllName})}; + return std::unique_ptr{OsLibrary::loadFunc(Os::igcDllName)}; } CIF::CreateCIFMainFunc_t OclocIgcFacade::loadCreateIgcMainFunction() const { diff --git a/shared/offline_compiler/source/utilities/windows/seh_exception.cpp b/shared/offline_compiler/source/utilities/windows/seh_exception.cpp index 8d2715439a..84814384d7 100644 --- a/shared/offline_compiler/source/utilities/windows/seh_exception.cpp +++ b/shared/offline_compiler/source/utilities/windows/seh_exception.cpp @@ -88,7 +88,7 @@ void SehException::getCallStack(unsigned int code, struct _EXCEPTION_POINTERS *e DWORD displacement = 0; DWORD64 displacement64 = 0; - std::unique_ptr psApiLib(NEO::OsLibrary::loadFunc({"psapi.dll"})); + std::unique_ptr psApiLib(NEO::OsLibrary::loadFunc("psapi.dll")); auto getMappedFileName = reinterpret_cast(psApiLib->getProcAddress("GetMappedFileNameA")); size_t callstackCounter = 0; diff --git a/shared/source/compiler_interface/compiler_interface.inl b/shared/source/compiler_interface/compiler_interface.inl index 2c7addc088..db0d79554a 100644 --- a/shared/source/compiler_interface/compiler_interface.inl +++ b/shared/source/compiler_interface/compiler_interface.inl @@ -90,9 +90,7 @@ template