summaryrefslogtreecommitdiff
path: root/test/CoverageMapping/Inputs/macros.h
diff options
context:
space:
mode:
Diffstat (limited to 'test/CoverageMapping/Inputs/macros.h')
-rw-r--r--test/CoverageMapping/Inputs/macros.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/test/CoverageMapping/Inputs/macros.h b/test/CoverageMapping/Inputs/macros.h
new file mode 100644
index 000000000000..0a2dadd1b81a
--- /dev/null
+++ b/test/CoverageMapping/Inputs/macros.h
@@ -0,0 +1,13 @@
+// Assorted macros to help test #include behavior across file boundaries.
+
+#define helper1 0
+
+void helper2(const char *, ...);
+
+#define M1(a, ...) helper2(a, ##__VA_ARGS__);
+
+// Note: M2 stresses vararg macro functions with macro arguments. The spelling
+// locations of the args used to be set to the expansion site, leading to
+// crashes (region LineEnd < LineStart). The regression test requires M2's line
+// number to be greater than the line number containing the expansion.
+#define M2(a, ...) M1(a, helper1, ##__VA_ARGS__);