// RUN: rm -rf %t // RUN: split-file %s %t // RUN: sed -e "s|DIR|%/t|g" %t/cdb.json.in > %t/cdb.json //--- cdb.json.in [{ "directory": "DIR", "command": "clang -c DIR/tu.c -o DIR/tu.o -IDIR/include", "file": "DIR/tu.c" }] //--- include/header.h //--- include/header2.h //--- include/header3.h //--- include/header4.h //--- include/header5.h //--- include/header6.h //--- include/header7.h //--- include/header8.h //--- include/header9.h //--- include/header10.h //--- include/header11.h //--- include/header12.h //--- include/header13.h //--- include/header14.h //--- tu.c #if 0 R"x()x" #endif #include "header.h" #if 0 R"y("; #endif #include "header2.h" #if 0 //")y" #endif #if 0 R"y("; R"z()y"; #endif #include "header3.h" #if 0 //")z" #endif #if 0 R\ "y("; R"z()y"; #endif #include "header4.h" #if 0 //")z" #endif // Test u8 prefix with escaped newline #if 0 u8R\ "prefix(test)prefix" #endif #include "header5.h" // Test u prefix with multiple escaped newlines #if 0 uR\ \ "multi(test)multi" #endif #include "header6.h" // Test U prefix with escaped newline #if 0 UR\ "upper(test)upper" #endif #include "header7.h" // Test L prefix with escaped newline #if 0 LR\ "wide(test)wide" #endif #include "header8.h" // Test escaped newline with \r\n style #if 0 R\ "crlf(test)crlf" #endif #include "header9.h" // Test multiple escaped newlines in different positions #if 0 u\ 8\ R\ "complex(test)complex" #endif #include "header10.h" // Test raw string that should NOT be treated as raw (no R prefix due to identifier continuation) #if 0 identifierR"notraw(test)notraw" #endif #include "header11.h" // Test raw string with whitespace before escaped newline #if 0 R \ "whitespace(test)whitespace" #endif #include "header12.h" // Test nested raw strings in disabled code #if 0 R"outer( R"inner(content)inner" )outer" #endif #include "header13.h" // Test raw string with empty delimiter #if 0 R\ "(empty delimiter)"; #endif #include "header14.h" // RUN: clang-scan-deps -compilation-database %t/cdb.json -mode preprocess | FileCheck %s // RUN: clang-scan-deps -compilation-database %t/cdb.json -mode preprocess-dependency-directives | FileCheck %s // CHECK: tu.c // CHECK-NEXT: header.h // CHECK-NEXT: header3.h // CHECK-NEXT: header4.h // CHECK-NEXT: header5.h // CHECK-NEXT: header6.h // CHECK-NEXT: header7.h // CHECK-NEXT: header8.h // CHECK-NEXT: header9.h // CHECK-NEXT: header10.h // CHECK-NEXT: header11.h // CHECK-NEXT: header12.h // CHECK-NEXT: header13.h // CHECK-NEXT: header14.h