aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/cplusplus/preprocessor/tst_preprocessor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/cplusplus/preprocessor/tst_preprocessor.cpp')
-rw-r--r--tests/auto/cplusplus/preprocessor/tst_preprocessor.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/tests/auto/cplusplus/preprocessor/tst_preprocessor.cpp b/tests/auto/cplusplus/preprocessor/tst_preprocessor.cpp
index 005ea5c1fa..6801240368 100644
--- a/tests/auto/cplusplus/preprocessor/tst_preprocessor.cpp
+++ b/tests/auto/cplusplus/preprocessor/tst_preprocessor.cpp
@@ -405,6 +405,7 @@ private slots:
void multi_byte_code_point_in_expansion();
void trigraph();
void nested_arguments_expansion();
+ void preprocessorSymbolsAsMacroArguments();
};
// Remove all #... lines, and 'simplify' string, to allow easily comparing the result
@@ -2099,6 +2100,20 @@ void tst_Preprocessor::nested_arguments_expansion()
QVERIFY(prep.contains(output));
}
+void tst_Preprocessor::preprocessorSymbolsAsMacroArguments()
+{
+ Environment env;
+ Preprocessor preprocess(nullptr, &env);
+ const QByteArray input =
+ "#define IFGEN(if, endif) if (1 == 0) endif\n"
+ "int main()\n"
+ "{\n"
+ "IFGEN(#if, #endif)\n"
+ "return 0;\n"
+ "}\n";
+ QVERIFY(preprocess.run(QLatin1String("<stdin>"), input).startsWith("# 1 \"<stdin>\"\n"));
+}
+
void tst_Preprocessor::excessive_nesting()
{
Environment env;