hubert.reinterpretcast created this revision. xargs supports escaping of newline characters with backslash. xargs -0 is neither part of POSIX nor the LSB.
This patch removes the -0 option and adjusts the input to xargs accordingly; that is, the input is a text file not ending in an incomplete line, and the newline of interest is preceded by a backslash. Note: The treatment of escaped newline characters is not as clearly specified by POSIX as for escaped blank characters; however, the same can be said for escaped backslashes. It is slightly more clear for the case where the -I option is used; however, -I is also of limited portability. Repository: rC Clang https://reviews.llvm.org/D41544 Files: test/Preprocessor/macro-multiline.c Index: test/Preprocessor/macro-multiline.c =================================================================== --- test/Preprocessor/macro-multiline.c +++ test/Preprocessor/macro-multiline.c @@ -1,4 +1,4 @@ -// RUN: printf -- "-DX=A\nTHIS_SHOULD_NOT_EXIST_IN_THE_OUTPUT" | xargs -0 %clang -E %s | FileCheck -strict-whitespace %s +// RUN: printf -- "-DX=A\\\\\nTHIS_SHOULD_NOT_EXIST_IN_THE_OUTPUT\n" | xargs %clang -E %s | FileCheck -strict-whitespace %s // Per GCC -D semantics, \n and anything that follows is ignored.
Index: test/Preprocessor/macro-multiline.c =================================================================== --- test/Preprocessor/macro-multiline.c +++ test/Preprocessor/macro-multiline.c @@ -1,4 +1,4 @@ -// RUN: printf -- "-DX=A\nTHIS_SHOULD_NOT_EXIST_IN_THE_OUTPUT" | xargs -0 %clang -E %s | FileCheck -strict-whitespace %s +// RUN: printf -- "-DX=A\\\\\nTHIS_SHOULD_NOT_EXIST_IN_THE_OUTPUT\n" | xargs %clang -E %s | FileCheck -strict-whitespace %s // Per GCC -D semantics, \n and anything that follows is ignored.
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits