The whitespace should come from the argument name in the macro expansion, rather than from the token passed to the macro (same as it does when not pasting). Added a new test case for the change in behavior to stringize_space.c. FileCheck'ized macro_paste_commaext.c, tweaked the test case, and added a comment; no behavioral change to this test. Differential Revision: https://reviews.llvm.org/D30427 llvm-svn: 302195
21 lines
647 B
C
21 lines
647 B
C
// RUN: %clang_cc1 %s -E | FileCheck --strict-whitespace --match-full-lines %s
|
|
|
|
// In the following tests, note that the output is sensitive to the
|
|
// whitespace *preceeding* the varargs argument, as well as to
|
|
// interior whitespace. AFAIK, this is the only case where whitespace
|
|
// preceeding an argument matters, and might be considered a bug in
|
|
// GCC. Nevertheless, since this feature is a GCC extension in the
|
|
// first place, we'll follow along.
|
|
|
|
#define debug(format, ...) format, ## __VA_ARGS__)
|
|
// CHECK:V);
|
|
debug(V);
|
|
// CHECK:W,1, 2);
|
|
debug(W,1, 2);
|
|
// CHECK:X, 1, 2);
|
|
debug(X, 1, 2 );
|
|
// CHECK:Y,);
|
|
debug(Y, );
|
|
// CHECK:Z,);
|
|
debug(Z,);
|