Set (and unset, as necessary) QT_NO_EXCEPTIONS for Clang (and ICC)
Needs ReviewPublic

Authored by rjvbb on May 25 2017, 2:36 PM.

Details

Reviewers
kfunk
Group Reviewers
Build System
Frameworks
Summary

Qt currently fails to set QT_NO_EXCEPTIONS when building with Clang. The Clang documentation suggests it should happen across platforms but in practice it seems to happen only when targeting Mac. (ICC apparently masquerades as clang so may be affected too.)

This patch corrects that omission which leads to issues like this one: https://git.reviewboard.kde.org/r/130139/

I have attempted to add the corresponding unsetters to the file and target specific exceptions enabler macros; they have the intended effect on the compiler invocation.

I have filed a Qt bug report (https://bugreports.qt.io/browse/QTBUG-61034) but I doubt a fix would land before 5.9.1 . IOW, we'll still want to take care of this in the ECM.

Diff Detail

Lint
Lint Skipped
Unit
Unit Tests Skipped
rjvbb created this revision.May 25 2017, 2:36 PM
Restricted Application added a project: Frameworks. ยท View Herald TranscriptMay 25 2017, 2:36 PM
rjvbb edited the summary of this revision. (Show Details)May 25 2017, 2:38 PM
rjvbb edited the summary of this revision. (Show Details)
rjvbb edited the summary of this revision. (Show Details)May 30 2017, 9:28 AM
rjvbb added a reviewer: kfunk.
thiago added a subscriber: thiago.May 30 2017, 4:55 PM

Makes sense to work around older versions of Qt without the fix.

But it needs a fix. That is still pending.

rjvbb added a comment.May 30 2017, 7:01 PM

Makes sense to work around older versions of Qt without the fix.

But it needs a fix. That is still pending.

Yes, here too, haven't had time to read back up on and go through the whole Qt code review process. What branch should I target, anyway?

In D5972#112994, @rjvbb wrote:

Yes, here too, haven't had time to read back up on and go through the whole Qt code review process. What branch should I target, anyway?

5.9, with a possible backport to 5.6. There's still time for 5.6.3.