diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2016-07-07 10:57:03 +0200 |
---|---|---|
committer | Marc Mutz <marc.mutz@kdab.com> | 2016-07-12 06:38:56 +0000 |
commit | d91d3536eb82075aec25f3772c4209e15b7b3060 (patch) | |
tree | 3e78419f4e2bd9e038ff2e1fa5d6639cc4b26d77 /src/xmlpatterns/data/qitem_p.h | |
parent | 71ca09a07d1b5adf3eeefd3790250481781ba166 (diff) | |
download | qtxmlpatterns-d91d3536eb82075aec25f3772c4209e15b7b3060.tar.gz |
Unbreak ubsan developer-build
GCC's undefined-behavior sanitizer checks that the
declared type of the object is a base class of the
dynamic type of the object on each access to a
member of a class type.
It therefore requires the typeinfo for these types,
which for polymorphic types is emitted in the TU
where the vtable is emitted, too.
QtPatternist::AtomicValue is a polymorphic non-
exported class, so this failed at link-time. Ditto
for the other cases.
Fix by autotest-exporting the classes.
Also, where applicable, de-inline the dtors, so the
vtable (and typeinfo) are pinned to one TU.
Change-Id: I5c47be779a3833433a7108a79a57d61a93ab5494
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/xmlpatterns/data/qitem_p.h')
-rw-r--r-- | src/xmlpatterns/data/qitem_p.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/src/xmlpatterns/data/qitem_p.h b/src/xmlpatterns/data/qitem_p.h index c89add1..c5a168d 100644 --- a/src/xmlpatterns/data/qitem_p.h +++ b/src/xmlpatterns/data/qitem_p.h @@ -105,8 +105,7 @@ namespace QPatternist * @ingroup Patternist_xdm * @author Frans Englich <frans.englich@nokia.com> */ - class AtomicValue : public QSharedData - , public CppCastingHelper<AtomicValue> + class Q_AUTOTEST_EXPORT AtomicValue : public QSharedData, public CppCastingHelper<AtomicValue> { public: virtual ~AtomicValue(); |