diff options
-rw-r--r-- | config.tests/no_direct_extern_access/CMakeLists.txt | 3 | ||||
-rw-r--r-- | config.tests/no_direct_extern_access/main.cpp | 10 | ||||
-rw-r--r-- | config.tests/no_direct_extern_access/other.cpp | 8 |
3 files changed, 19 insertions, 2 deletions
diff --git a/config.tests/no_direct_extern_access/CMakeLists.txt b/config.tests/no_direct_extern_access/CMakeLists.txt index 7c82348751..b4b881f1dc 100644 --- a/config.tests/no_direct_extern_access/CMakeLists.txt +++ b/config.tests/no_direct_extern_access/CMakeLists.txt @@ -2,9 +2,10 @@ cmake_minimum_required(VERSION 3.16) project(direct_extern_access LANGUAGES CXX) # this is the test found in https://sourceware.org/bugzilla/show_bug.cgi?id=29087 +# and https://sourceware.org/bugzilla/show_bug.cgi?id=29377 add_library(no_extern_access_lib SHARED lib.cpp) -add_executable(no_extern_access_main main.cpp) +add_executable(no_extern_access_main other.cpp main.cpp) target_compile_options(no_extern_access_lib PRIVATE "-Werror") target_compile_options(no_extern_access_lib PUBLIC "$<$<CXX_COMPILER_ID:GNU>:-mno-direct-extern-access>") diff --git a/config.tests/no_direct_extern_access/main.cpp b/config.tests/no_direct_extern_access/main.cpp index 9cf0323766..541c8b4b33 100644 --- a/config.tests/no_direct_extern_access/main.cpp +++ b/config.tests/no_direct_extern_access/main.cpp @@ -1,10 +1,18 @@ // Copyright (C) 2022 Intel Corporation. // SPDX-License-Identifier: MIT -// This is the test found in https://sourceware.org/bugzilla/show_bug.cgi?id=29087 +// This is combining the tests found in: +// https://sourceware.org/bugzilla/show_bug.cgi?id=29087 +// https://sourceware.org/bugzilla/show_bug.cgi?id=29377 #include "lib.h" +extern void foo(); // other.cpp +void (*get_foo())() +{ + return foo; +} + struct Local : S { }; int main() { diff --git a/config.tests/no_direct_extern_access/other.cpp b/config.tests/no_direct_extern_access/other.cpp new file mode 100644 index 0000000000..ff12b10930 --- /dev/null +++ b/config.tests/no_direct_extern_access/other.cpp @@ -0,0 +1,8 @@ +// Copyright (C) 2022 Intel Corporation. +// SPDX-License-Identifier: MIT + +// This is the test found in https://sourceware.org/bugzilla/show_bug.cgi?id=29377 + +__attribute__((visibility("protected"))) void foo() +{ +} |