qt5base-lts/tests/auto/tools/qmake/testdata
Edward Welbourne 515b905150 Adapt qmake's raw-string parser to avoid confusion by macros
A macro name ending in R might expand to a string; if this precedes a
string constant, we're juxtaposing the strings.  My first parser for
raw strings would mistake it for a raw string instead, ignoring the
part of the identifier before R.  Re-worked the exploration of what
came before the string to catch these cases, too.

The backwards parsing would also allow any messy jumble of [RLUu8]* as
prefix for the string; but in fact R must (if present) be last in the
prefix and *it* can have at most one prefix, [LUu] or u8.  Anything
else is an identifier that happens to precede the string.  Reworked
the parsing to allow only one prefix and not treat R specially unless
it's immediately (modulo BSNL) before the string's open-quotes.

Add link to the cppreference page about string literals, on which the
grammar now parsed is based.

Added a test for the issue this addresses.
Verified that this fails on 5.6, dev and 5.9 without the fix.
Expanded the existing test to cover R-with-prefix cases.

Task-number: QTBUG-55633
Change-Id: I541486c2ec909cfb42050907c84bee83ead4a2f4
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-08-24 14:27:50 +00:00
..
bundle-spaces remove nonsense DEFINES 2013-07-03 21:38:37 +02:00
duplicateLibraryEntries remove nonsense DEFINES 2013-07-03 21:38:37 +02:00
export_across_file_boundaries de-noise test 2015-02-04 16:33:51 +00:00
findDeps Updated license headers 2016-01-21 18:55:18 +00:00
findMocs Updated license headers 2016-01-21 18:55:18 +00:00
include_dir Updated license headers 2016-01-21 18:55:18 +00:00
include_dir_build
include_pwd Fix semantics of the src dir in the include search paths with MinGW 2012-09-10 14:09:45 +02:00
install_depends Updated license headers 2016-01-21 18:55:18 +00:00
one_space Updated license headers 2016-01-21 18:55:18 +00:00
pro_file_cache Fix qmake's pro file cache to interact correctly with write_file 2012-10-25 16:22:00 +02:00
project Updated license headers 2016-01-21 18:55:18 +00:00
prompt remove nonsense DEFINES 2013-07-03 21:38:37 +02:00
quotedfilenames make extra compiler targets depend on their respective compiler 2016-04-18 09:38:10 +00:00
rawString Adapt qmake's raw-string parser to avoid confusion by macros 2017-08-24 14:27:50 +00:00
resources Updated license headers 2016-01-21 18:55:18 +00:00
shadow_files Updated license headers 2016-01-21 18:55:18 +00:00
shadow_files_build
simple_app Updated license headers 2016-01-21 18:55:18 +00:00
simple_app_build
simple_dll Updated license headers 2016-01-21 18:55:18 +00:00
simple_lib Updated license headers 2016-01-21 18:55:18 +00:00
subdir_via_pro_file_extra_target Updated license headers 2016-01-21 18:55:18 +00:00
subdirs Updated license headers 2016-01-21 18:55:18 +00:00
substitutes remove nonsense DEFINES 2013-07-03 21:38:37 +02:00
substitutes_build
.gitignore Ignore stuff created during testing 2015-11-25 13:17:01 +00:00