From 7d97463e4d342d0334dc9a09d9eff70d27821ced Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 14 Jun 2024 16:42:56 +0200 Subject: [PATCH] C++: Add test that show that routine attributes are not fully de-duplicated --- .../attributes/routine_attributes/arguments.expected | 4 ++++ .../routine_attributes/routine_attributes.expected | 4 ++++ .../attributes/routine_attributes/routine_attributes2.cpp | 7 +++++++ .../attributes/routine_attributes/routine_attributes2.h | 3 +++ .../attributes/routine_attributes/routine_attributes3.cpp | 3 +++ 5 files changed, 21 insertions(+) create mode 100644 cpp/ql/test/library-tests/attributes/routine_attributes/routine_attributes2.cpp create mode 100644 cpp/ql/test/library-tests/attributes/routine_attributes/routine_attributes2.h create mode 100644 cpp/ql/test/library-tests/attributes/routine_attributes/routine_attributes3.cpp diff --git a/cpp/ql/test/library-tests/attributes/routine_attributes/arguments.expected b/cpp/ql/test/library-tests/attributes/routine_attributes/arguments.expected index 7be35948ed8..363b5ed1c7e 100644 --- a/cpp/ql/test/library-tests/attributes/routine_attributes/arguments.expected +++ b/cpp/ql/test/library-tests/attributes/routine_attributes/arguments.expected @@ -1,4 +1,8 @@ | declspec.cpp:4:23:4:43 | Use fatal() instead | declspec.cpp:4:59:4:62 | exit | declspec.cpp:4:12:4:21 | deprecated | Use fatal() instead | +| routine_attributes2.cpp:5:6:5:11 | hidden | routine_attributes2.cpp:5:13:5:21 | a_routine | routine_attributes2.cpp:5:6:5:11 | visibility | hidden | +| routine_attributes2.cpp:5:6:5:11 | hidden | routine_attributes2.cpp:5:13:5:21 | a_routine | routine_attributes2.cpp:5:6:5:11 | visibility | hidden | +| routine_attributes2.h:3:6:3:11 | hidden | routine_attributes2.cpp:5:13:5:21 | a_routine | routine_attributes2.h:3:6:3:11 | visibility | hidden | +| routine_attributes2.h:3:6:3:11 | hidden | routine_attributes2.cpp:5:13:5:21 | a_routine | routine_attributes2.h:3:6:3:11 | visibility | hidden | | routine_attributes.c:3:53:3:59 | dummy | routine_attributes.c:3:12:3:24 | named_weakref | routine_attributes.c:3:44:3:50 | weakref | dummy | | routine_attributes.c:4:62:4:68 | dummy | routine_attributes.c:4:12:4:26 | aliased_weakref | routine_attributes.c:4:55:4:59 | alias | dummy | | routine_attributes.c:6:49:6:55 | dummy | routine_attributes.c:6:12:6:22 | plain_alias | routine_attributes.c:6:42:6:46 | alias | dummy | diff --git a/cpp/ql/test/library-tests/attributes/routine_attributes/routine_attributes.expected b/cpp/ql/test/library-tests/attributes/routine_attributes/routine_attributes.expected index 1d2d5f1d395..529b2d5f78c 100644 --- a/cpp/ql/test/library-tests/attributes/routine_attributes/routine_attributes.expected +++ b/cpp/ql/test/library-tests/attributes/routine_attributes/routine_attributes.expected @@ -18,6 +18,10 @@ | header_export.cpp:14:16:14:26 | myFunction4 | header_export.cpp:14:1:14:9 | dllexport | | header_export.cpp:18:6:18:16 | myFunction5 | header.h:10:2:10:10 | dllexport | | header_export.cpp:18:6:18:16 | myFunction5 | header.h:10:2:10:10 | dllimport | +| routine_attributes2.cpp:5:13:5:21 | a_routine | routine_attributes2.cpp:5:6:5:11 | visibility | +| routine_attributes2.cpp:5:13:5:21 | a_routine | routine_attributes2.cpp:5:6:5:11 | visibility | +| routine_attributes2.cpp:5:13:5:21 | a_routine | routine_attributes2.h:3:6:3:11 | visibility | +| routine_attributes2.cpp:5:13:5:21 | a_routine | routine_attributes2.h:3:6:3:11 | visibility | | routine_attributes.c:3:12:3:24 | named_weakref | routine_attributes.c:3:44:3:50 | weakref | | routine_attributes.c:4:12:4:26 | aliased_weakref | routine_attributes.c:4:46:4:52 | weakref | | routine_attributes.c:4:12:4:26 | aliased_weakref | routine_attributes.c:4:55:4:59 | alias | diff --git a/cpp/ql/test/library-tests/attributes/routine_attributes/routine_attributes2.cpp b/cpp/ql/test/library-tests/attributes/routine_attributes/routine_attributes2.cpp new file mode 100644 index 00000000000..f4c8f2f7c55 --- /dev/null +++ b/cpp/ql/test/library-tests/attributes/routine_attributes/routine_attributes2.cpp @@ -0,0 +1,7 @@ +#define HIDDEN __attribute__((visibility("hidden"))) + +#include "routine_attributes2.h" + +void HIDDEN a_routine() { + return; +} diff --git a/cpp/ql/test/library-tests/attributes/routine_attributes/routine_attributes2.h b/cpp/ql/test/library-tests/attributes/routine_attributes/routine_attributes2.h new file mode 100644 index 00000000000..f9d28c2fe8d --- /dev/null +++ b/cpp/ql/test/library-tests/attributes/routine_attributes/routine_attributes2.h @@ -0,0 +1,3 @@ +#pragma once + +void HIDDEN a_routine(); diff --git a/cpp/ql/test/library-tests/attributes/routine_attributes/routine_attributes3.cpp b/cpp/ql/test/library-tests/attributes/routine_attributes/routine_attributes3.cpp new file mode 100644 index 00000000000..a36d3c967d1 --- /dev/null +++ b/cpp/ql/test/library-tests/attributes/routine_attributes/routine_attributes3.cpp @@ -0,0 +1,3 @@ +#define HIDDEN __attribute__((visibility("hidden"))) + +#include "routine_attributes2.h"