diff options
author | Edward Welbourne <edward.welbourne@theqtcompany.com> | 2015-11-12 11:01:31 +0100 |
---|---|---|
committer | Edward Welbourne <edward.welbourne@theqtcompany.com> | 2015-11-20 15:01:38 +0000 |
commit | 00a855d64326c03f1e7b05ae335c774e910405d7 (patch) | |
tree | 8daad285624871c39bffc614c52b57de7d328e6d /tests/auto/tools/qmake | |
parent | f1d5641d49f676b835c2a81b96deba0c39fd386a (diff) |
Avoid having division caught up in parsing of comments.
A loop to skip space and comments was meant to break on anything else
but would have not broken on a division operator (where it should) due
to it getting caught in the check for a comment-start, without falling
back suitably when it didn't complete that check.
Managed to contrive a suitably twisted change to findDeps test to
reveal the bug; broken previously, now fixed. Not ideal, as it relied
on another bug to fail previously - backslash-newline shouldn't end a
preprocessing directive line - but it should still pass once that's
fixed, too. Exercising a bug in qmake usually involves code that
won't compile anyway, making it tricky to write a test that reveals
the bug but that passes once it's fixed.
Change-Id: I08a1d7cc5e3d7fd1ac0a48e5c09dfdfbb7580b11
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Diffstat (limited to 'tests/auto/tools/qmake')
-rw-r--r-- | tests/auto/tools/qmake/testdata/findDeps/findDeps.pro | 2 | ||||
-rw-r--r-- | tests/auto/tools/qmake/testdata/findDeps/main.cpp | 9 | ||||
-rw-r--r-- | tests/auto/tools/qmake/testdata/findDeps/needed.cpp | 1 |
3 files changed, 9 insertions, 3 deletions
diff --git a/tests/auto/tools/qmake/testdata/findDeps/findDeps.pro b/tests/auto/tools/qmake/testdata/findDeps/findDeps.pro index 442c9c767f..2713296f5b 100644 --- a/tests/auto/tools/qmake/testdata/findDeps/findDeps.pro +++ b/tests/auto/tools/qmake/testdata/findDeps/findDeps.pro @@ -9,4 +9,4 @@ HEADERS += object1.h \ object7.h \ object8.h \ object9.h -SOURCES += main.cpp +SOURCES += main.cpp needed.cpp diff --git a/tests/auto/tools/qmake/testdata/findDeps/main.cpp b/tests/auto/tools/qmake/testdata/findDeps/main.cpp index e4aa5c6251..0df3f9b7c3 100644 --- a/tests/auto/tools/qmake/testdata/findDeps/main.cpp +++ b/tests/auto/tools/qmake/testdata/findDeps/main.cpp @@ -31,6 +31,9 @@ ** ****************************************************************************/ +#define spurious \ + / #include "needed.cpp" +// if not ignored, symbol needed() won't be available ... #include <moc_object1.cpp> /**/ #include <moc_object2.cpp> @@ -49,5 +52,7 @@ static void function2(); /**/ static void function3(); // #include <moc_object9.cpp> -int main () {} - +int main () { + extern int needed(void); + return needed(); +} diff --git a/tests/auto/tools/qmake/testdata/findDeps/needed.cpp b/tests/auto/tools/qmake/testdata/findDeps/needed.cpp new file mode 100644 index 0000000000..698d0aaa12 --- /dev/null +++ b/tests/auto/tools/qmake/testdata/findDeps/needed.cpp @@ -0,0 +1 @@ +extern int needed(void) { return 1; } |