summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTim Blechmann <tim.blechmann@qt.io>2025-07-17 16:14:00 +0800
committerTim Blechmann <tim.blechmann@qt.io>2025-07-22 10:50:01 +0800
commita68e7a5f876f432812e15e287c93c137a2ec1d2a (patch)
tree6dbe654216070baa56ee19bd8f4a040d40d030c1 /src
parenta9653ea3f608fd43bb3f509c035a6415013859c2 (diff)
QtCore: prevent un-namespaced symbols from being being exported
A few inline functions were not properly namespaced and could clash with application symbols when linking qt statically. Declaring them as static to hide them. furthermore qTerminate was not defined in the qt namespace. Task-number: QTBUG-138543 Pick-to: 6.10 Change-Id: I823839a7fd00e1ba2b94b4232efedb79b71a59a6 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src')
-rw-r--r--src/corelib/compat/removed_api.cpp2
-rw-r--r--src/corelib/global/qgettid_p.h6
-rw-r--r--src/corelib/global/qsimd_p.h25
-rw-r--r--src/corelib/global/qtnoop.h4
4 files changed, 21 insertions, 16 deletions
diff --git a/src/corelib/compat/removed_api.cpp b/src/corelib/compat/removed_api.cpp
index 94879edcf72..f05fda401f1 100644
--- a/src/corelib/compat/removed_api.cpp
+++ b/src/corelib/compat/removed_api.cpp
@@ -1254,10 +1254,12 @@ QUuid QUuid::createUuidV5(const QUuid &ns, const QByteArray &baseData) noexcept
#include "qexceptionhandling.h"
+QT_BEGIN_NAMESPACE
Q_NORETURN void qTerminate() noexcept
{
std::terminate();
}
+QT_END_NAMESPACE
#include "qmetatype.h"
diff --git a/src/corelib/global/qgettid_p.h b/src/corelib/global/qgettid_p.h
index ab37ec09fae..3f1f0afc8d8 100644
--- a/src/corelib/global/qgettid_p.h
+++ b/src/corelib/global/qgettid_p.h
@@ -25,7 +25,7 @@
# define SYS_gettid __NR_gettid
# endif
-inline long qt_gettid()
+static inline long qt_gettid()
{
// no error handling
// this syscall has existed since Linux 2.4.11 and cannot fail
@@ -33,7 +33,7 @@ inline long qt_gettid()
}
#elif defined(Q_OS_DARWIN)
# include <pthread.h>
-inline int qt_gettid()
+static inline int qt_gettid()
{
// no error handling: this call cannot fail
__uint64_t tid;
@@ -42,7 +42,7 @@ inline int qt_gettid()
}
#elif defined(Q_OS_FREEBSD_KERNEL) && defined(__FreeBSD_version) && __FreeBSD_version >= 900031
# include <pthread_np.h>
-inline int qt_gettid()
+static inline int qt_gettid()
{
return pthread_getthreadid_np();
}
diff --git a/src/corelib/global/qsimd_p.h b/src/corelib/global/qsimd_p.h
index 2f1e556f5d3..25f18de2793 100644
--- a/src/corelib/global/qsimd_p.h
+++ b/src/corelib/global/qsimd_p.h
@@ -276,14 +276,14 @@ static_assert(ARCH_SKX_MACROS, "Undeclared identifiers indicate which features a
#endif
#ifndef Q_PROCESSOR_ARM_64 // vaddv is only available on Aarch64
-inline uint16_t vaddvq_u16(uint16x8_t v8)
+static inline uint16_t vaddvq_u16(uint16x8_t v8)
{
const uint64x2_t v2 = vpaddlq_u32(vpaddlq_u16(v8));
const uint64x1_t v1 = vadd_u64(vget_low_u64(v2), vget_high_u64(v2));
return vget_lane_u16(vreinterpret_u16_u64(v1), 0);
}
-inline uint8_t vaddv_u8(uint8x8_t v8)
+static inline uint8_t vaddv_u8(uint8x8_t v8)
{
const uint64x1_t v1 = vpaddl_u32(vpaddl_u16(vpaddl_u8(v8)));
return vget_lane_u8(vreinterpret_u8_u64(v1), 0);
@@ -291,8 +291,9 @@ inline uint8_t vaddv_u8(uint8x8_t v8)
#endif
// Missing NEON intrinsics, needed due different type definitions:
-inline uint16x8_t qvsetq_n_u16(uint16_t v1, uint16_t v2, uint16_t v3, uint16_t v4,
- uint16_t v5, uint16_t v6, uint16_t v7, uint16_t v8) {
+static inline uint16x8_t qvsetq_n_u16(uint16_t v1, uint16_t v2, uint16_t v3, uint16_t v4,
+ uint16_t v5, uint16_t v6, uint16_t v7, uint16_t v8)
+{
#if defined(Q_CC_MSVC) && !defined(Q_CC_CLANG)
using u64 = uint64_t;
const uint16x8_t vmask = {
@@ -304,8 +305,9 @@ inline uint16x8_t qvsetq_n_u16(uint16_t v1, uint16_t v2, uint16_t v3, uint16_t v
#endif
return vmask;
}
-inline uint8x8_t qvset_n_u8(uint8_t v1, uint8_t v2, uint8_t v3, uint8_t v4,
- uint8_t v5, uint8_t v6, uint8_t v7, uint8_t v8) {
+static inline uint8x8_t qvset_n_u8(uint8_t v1, uint8_t v2, uint8_t v3, uint8_t v4, uint8_t v5,
+ uint8_t v6, uint8_t v7, uint8_t v8)
+{
#if defined(Q_CC_MSVC) && !defined(Q_CC_CLANG)
using u64 = uint64_t;
const uint8x8_t vmask = {
@@ -317,10 +319,11 @@ inline uint8x8_t qvset_n_u8(uint8_t v1, uint8_t v2, uint8_t v3, uint8_t v4,
#endif
return vmask;
}
-inline uint8x16_t qvsetq_n_u8(uint8_t v1, uint8_t v2, uint8_t v3, uint8_t v4,
- uint8_t v5, uint8_t v6, uint8_t v7, uint8_t v8,
- uint8_t v9, uint8_t v10, uint8_t v11, uint8_t v12,
- uint8_t v13, uint8_t v14, uint8_t v15, uint8_t v16) {
+static inline uint8x16_t qvsetq_n_u8(uint8_t v1, uint8_t v2, uint8_t v3, uint8_t v4, uint8_t v5,
+ uint8_t v6, uint8_t v7, uint8_t v8, uint8_t v9, uint8_t v10,
+ uint8_t v11, uint8_t v12, uint8_t v13, uint8_t v14,
+ uint8_t v15, uint8_t v16)
+{
#if defined(Q_CC_MSVC) && !defined(Q_CC_CLANG)
using u64 = uint64_t;
const uint8x16_t vmask = {
@@ -335,7 +338,7 @@ inline uint8x16_t qvsetq_n_u8(uint8_t v1, uint8_t v2, uint8_t v3, uint8_t v4,
#endif
return vmask;
}
-inline uint32x4_t qvsetq_n_u32(uint32_t a, uint32_t b, uint32_t c, uint32_t d)
+static inline uint32x4_t qvsetq_n_u32(uint32_t a, uint32_t b, uint32_t c, uint32_t d)
{
#if defined(Q_CC_MSVC) && !defined(Q_CC_CLANG)
return uint32x4_t{ (uint64_t(b) << 32) | a, (uint64_t(d) << 32) | c };
diff --git a/src/corelib/global/qtnoop.h b/src/corelib/global/qtnoop.h
index c84e6c8a99a..83f13dfcb4e 100644
--- a/src/corelib/global/qtnoop.h
+++ b/src/corelib/global/qtnoop.h
@@ -9,9 +9,9 @@
#endif
#ifdef __cplusplus
-constexpr
+[[maybe_unused]] constexpr
#endif
-inline void qt_noop(void)
+static inline void qt_noop(void)
#ifdef __cplusplus
noexcept
#endif