diff --git a/clang/include/clang/Basic/JsonSupport.h b/clang/include/clang/Basic/JsonSupport.h index bbcc747e684754..1b118b45a0498c 100644 --- a/clang/include/clang/Basic/JsonSupport.h +++ b/clang/include/clang/Basic/JsonSupport.h @@ -97,9 +97,13 @@ inline void printSourceLocationAsJson(raw_ostream &Out, SourceLocation Loc, // The macro expansion and spelling pos is identical for file locs. if (AddBraces) Out << "{ "; + std::string filename(PLoc.getFilename()); +#ifdef _WIN32 // Handle windows-specific path delimiters. + std::replace(filename.begin(), filename.end(), '\\', '/'); +#endif Out << "\"line\": " << PLoc.getLine() << ", \"column\": " << PLoc.getColumn() - << ", \"file\": \"" << PLoc.getFilename() << "\""; + << ", \"file\": \"" << filename << "\""; if (AddBraces) Out << " }"; return; diff --git a/clang/test/Analysis/exploded-graph-rewriter/checker_messages.dot b/clang/test/Analysis/exploded-graph-rewriter/checker_messages.dot index 2d054a8d48bdb7..860bdcd6205384 100644 --- a/clang/test/Analysis/exploded-graph-rewriter/checker_messages.dot +++ b/clang/test/Analysis/exploded-graph-rewriter/checker_messages.dot @@ -1,8 +1,5 @@ // RUN: %exploded_graph_rewriter %s | FileCheck %s -// FIXME: Substitution doesn't seem to work on Windows. -// UNSUPPORTED: system-windows - // CHECK: Checker State: // CHECK-SAME: alpha.core.FooChecker: // CHECK-SAME: Foo stuff: diff --git a/clang/test/Analysis/exploded-graph-rewriter/checker_messages_diff.dot b/clang/test/Analysis/exploded-graph-rewriter/checker_messages_diff.dot index 898f79600b8ae3..401bf6ae8c3add 100644 --- a/clang/test/Analysis/exploded-graph-rewriter/checker_messages_diff.dot +++ b/clang/test/Analysis/exploded-graph-rewriter/checker_messages_diff.dot @@ -1,8 +1,5 @@ // RUN: %exploded_graph_rewriter -d %s | FileCheck %s -// FIXME: Substitution doesn't seem to work on Windows. -// UNSUPPORTED: system-windows - Node0x1 [shape=record,label= "{ { "state_id": 2, diff --git a/clang/test/Analysis/exploded-graph-rewriter/constraints.dot b/clang/test/Analysis/exploded-graph-rewriter/constraints.dot index f5ebcf1a606e2a..d8f64d7518cfb6 100644 --- a/clang/test/Analysis/exploded-graph-rewriter/constraints.dot +++ b/clang/test/Analysis/exploded-graph-rewriter/constraints.dot @@ -1,8 +1,5 @@ // RUN: %exploded_graph_rewriter %s | FileCheck %s -// FIXME: Substitution doesn't seem to work on Windows. -// UNSUPPORTED: system-windows - // CHECK: Ranges: // CHECK-SAME: // CHECK-SAME: diff --git a/clang/test/Analysis/exploded-graph-rewriter/constraints_diff.dot b/clang/test/Analysis/exploded-graph-rewriter/constraints_diff.dot index 53a87aa66755b2..221d3702cf700c 100644 --- a/clang/test/Analysis/exploded-graph-rewriter/constraints_diff.dot +++ b/clang/test/Analysis/exploded-graph-rewriter/constraints_diff.dot @@ -1,8 +1,5 @@ // RUN: %exploded_graph_rewriter -d %s | FileCheck %s -// FIXME: Substitution doesn't seem to work on Windows. -// UNSUPPORTED: system-windows - Node0x1 [shape=record,label= "{ { diff --git a/clang/test/Analysis/exploded-graph-rewriter/dynamic_types.cpp b/clang/test/Analysis/exploded-graph-rewriter/dynamic_types.cpp index a92c107769137d..25583e6de7385a 100644 --- a/clang/test/Analysis/exploded-graph-rewriter/dynamic_types.cpp +++ b/clang/test/Analysis/exploded-graph-rewriter/dynamic_types.cpp @@ -5,9 +5,6 @@ // RUN: %exploded_graph_rewriter %t.dot | FileCheck %s // REQUIRES: asserts -// FIXME: Substitution doesn't seem to work on Windows. -// UNSUPPORTED: system-windows - struct S {}; void test() { diff --git a/clang/test/Analysis/exploded-graph-rewriter/edge.dot b/clang/test/Analysis/exploded-graph-rewriter/edge.dot index 43d6e3b8faf106..4492dd88c46ea6 100644 --- a/clang/test/Analysis/exploded-graph-rewriter/edge.dot +++ b/clang/test/Analysis/exploded-graph-rewriter/edge.dot @@ -1,9 +1,6 @@ // RUN: %exploded_graph_rewriter %s | FileCheck %s -check-prefix=LIGHT // RUN: %exploded_graph_rewriter --dark %s | FileCheck %s -check-prefixes=DARK -// FIXME: Substitution doesn't seem to work on Windows. -// UNSUPPORTED: system-windows - Node0x1 [shape=record,label= "{{ "state_id": 0, "program_state": null, "program_points": [ { diff --git a/clang/test/Analysis/exploded-graph-rewriter/empty.dot b/clang/test/Analysis/exploded-graph-rewriter/empty.dot index 7f67e9cfed8a7e..1ef068cb8654a6 100644 --- a/clang/test/Analysis/exploded-graph-rewriter/empty.dot +++ b/clang/test/Analysis/exploded-graph-rewriter/empty.dot @@ -2,9 +2,6 @@ // RUN: %exploded_graph_rewriter --dark %s | FileCheck %s \ // RUN: -check-prefixes=CHECK,DARK -// FIXME: Substitution doesn't seem to work on Windows. -// UNSUPPORTED: system-windows - digraph "Exploded Graph" { label="Exploded Graph"; } diff --git a/clang/test/Analysis/exploded-graph-rewriter/environment.dot b/clang/test/Analysis/exploded-graph-rewriter/environment.dot index 7b8fc05d3bb4a5..c7caedae560d1d 100644 --- a/clang/test/Analysis/exploded-graph-rewriter/environment.dot +++ b/clang/test/Analysis/exploded-graph-rewriter/environment.dot @@ -1,8 +1,5 @@ // RUN: %exploded_graph_rewriter %s | FileCheck %s -// FIXME: Substitution doesn't seem to work on Windows. -// UNSUPPORTED: system-windows - // CHECK: Expressions: // CHECK-SAME:
// CHECK-SAME: diff --git a/clang/test/Analysis/exploded-graph-rewriter/environment_diff.dot b/clang/test/Analysis/exploded-graph-rewriter/environment_diff.dot index 05e8d4eef50fd8..3e8f13bbf6c845 100644 --- a/clang/test/Analysis/exploded-graph-rewriter/environment_diff.dot +++ b/clang/test/Analysis/exploded-graph-rewriter/environment_diff.dot @@ -1,8 +1,5 @@ // RUN: %exploded_graph_rewriter -d %s | FileCheck %s -// FIXME: Substitution doesn't seem to work on Windows. -// UNSUPPORTED: system-windows - // No diffs on the first node, nothing to check. Node0x1 [shape=record,label= "{ diff --git a/clang/test/Analysis/exploded-graph-rewriter/escapes.c b/clang/test/Analysis/exploded-graph-rewriter/escapes.c index e0f8c5047ce11f..563f1223a3dc12 100644 --- a/clang/test/Analysis/exploded-graph-rewriter/escapes.c +++ b/clang/test/Analysis/exploded-graph-rewriter/escapes.c @@ -5,9 +5,6 @@ // RUN: %exploded_graph_rewriter %t.dot | FileCheck %s // REQUIRES: asserts -// FIXME: Substitution doesn't seem to work on Windows. -// UNSUPPORTED: system-windows - void escapes() { // CHECK: // CHECK-SAME: diff --git a/clang/test/Analysis/exploded-graph-rewriter/initializers_under_construction.cpp b/clang/test/Analysis/exploded-graph-rewriter/initializers_under_construction.cpp index 96df69f8577acd..aa28a1d872e82a 100644 --- a/clang/test/Analysis/exploded-graph-rewriter/initializers_under_construction.cpp +++ b/clang/test/Analysis/exploded-graph-rewriter/initializers_under_construction.cpp @@ -5,9 +5,6 @@ // RUN: %exploded_graph_rewriter %t.dot | FileCheck %s // REQUIRES: asserts -// FIXME: Substitution doesn't seem to work on Windows. -// UNSUPPORTED: system-windows - struct A { A() {} }; diff --git a/clang/test/Analysis/exploded-graph-rewriter/lit.local.cfg b/clang/test/Analysis/exploded-graph-rewriter/lit.local.cfg index 87ce52cc53e0d1..9786932aa5a164 100644 --- a/clang/test/Analysis/exploded-graph-rewriter/lit.local.cfg +++ b/clang/test/Analysis/exploded-graph-rewriter/lit.local.cfg @@ -9,10 +9,9 @@ config.test_format = lit.formats.ShTest(use_lit_shell == "0") config.substitutions.append(('%exploded_graph_rewriter', '\'%s\' %s --dump-dot-only' % ( - config.python_executable, - lit.util.which('exploded-graph-rewriter.py', - os.path.join( - config.clang_src_dir, - 'utils', 'analyzer'))))) + config.python_executable, + os.path.join( + config.clang_src_dir, + 'utils', 'analyzer', 'exploded-graph-rewriter.py')))) config.suffixes.add('.dot') diff --git a/clang/test/Analysis/exploded-graph-rewriter/macros.c b/clang/test/Analysis/exploded-graph-rewriter/macros.c index 4dcbda95d225ee..39a6dc70ac2f9f 100644 --- a/clang/test/Analysis/exploded-graph-rewriter/macros.c +++ b/clang/test/Analysis/exploded-graph-rewriter/macros.c @@ -1,3 +1,11 @@ +#define NULL 0 +void *foo() { + return NULL; +} + +// The code above shall go first, because check tags below are sensetive to the line numbers on which the code is placed. +// You can change lines below in the way you need. + // FIXME: Figure out how to use %clang_analyze_cc1 with our lit.local.cfg. // RUN: %clang_cc1 -analyze -triple x86_64-unknown-linux-gnu \ // RUN: -analyzer-checker=core \ @@ -5,14 +13,7 @@ // RUN: %exploded_graph_rewriter %t.dot | FileCheck %s // REQUIRES: asserts -// FIXME: Substitution doesn't seem to work on Windows. -// UNSUPPORTED: system-windows - -// CHECK: macros.c:17:10 +// CHECK: macros.c:3:10 // CHECK-SAME: -// CHECK-SAME: (spelling at macros.c:15:14) +// CHECK-SAME: (spelling at macros.c:1:14) // CHECK-SAME: -#define NULL 0 -void *foo() { - return NULL; -} diff --git a/clang/test/Analysis/exploded-graph-rewriter/node_labels.dot b/clang/test/Analysis/exploded-graph-rewriter/node_labels.dot index 89d5070deedc47..03a4a52c1bd391 100644 --- a/clang/test/Analysis/exploded-graph-rewriter/node_labels.dot +++ b/clang/test/Analysis/exploded-graph-rewriter/node_labels.dot @@ -7,9 +7,6 @@ // RUN: %exploded_graph_rewriter %s --gray --dark \ // RUN: | FileCheck %s -check-prefixes CHECK,DARK,GRAY -// FIXME: Substitution doesn't seem to work on Windows. -// UNSUPPORTED: system-windows - // LIGHT: Node0x1 [shape=record,label=< // DARK: Node0x1 [shape=record,color="white",fontcolor="gray80",label=< // CHECK-SAME: diff --git a/clang/test/Analysis/exploded-graph-rewriter/objects_under_construction.cpp b/clang/test/Analysis/exploded-graph-rewriter/objects_under_construction.cpp index e4d256247f98ad..69cec5834c734a 100644 --- a/clang/test/Analysis/exploded-graph-rewriter/objects_under_construction.cpp +++ b/clang/test/Analysis/exploded-graph-rewriter/objects_under_construction.cpp @@ -6,9 +6,6 @@ // RUN: %exploded_graph_rewriter %t.dot | FileCheck %s // REQUIRES: asserts -// FIXME: Substitution doesn't seem to work on Windows. -// UNSUPPORTED: system-windows - struct S { S() {} }; diff --git a/clang/test/Analysis/exploded-graph-rewriter/program_points.dot b/clang/test/Analysis/exploded-graph-rewriter/program_points.dot index bee48d0f49f8c2..d4ba5ee7762764 100644 --- a/clang/test/Analysis/exploded-graph-rewriter/program_points.dot +++ b/clang/test/Analysis/exploded-graph-rewriter/program_points.dot @@ -1,8 +1,5 @@ // RUN: %exploded_graph_rewriter %s | FileCheck %s -// FIXME: Substitution doesn't seem to work on Windows. -// UNSUPPORTED: system-windows - // CHECK: Program points: // CHECK-SAME:
Store: (0x{{[0-9a-f]*}})foo0
// CHECK-SAME: diff --git a/clang/test/Analysis/exploded-graph-rewriter/store.dot b/clang/test/Analysis/exploded-graph-rewriter/store.dot index c92901cbd7a349..febc36ebe69881 100644 --- a/clang/test/Analysis/exploded-graph-rewriter/store.dot +++ b/clang/test/Analysis/exploded-graph-rewriter/store.dot @@ -1,8 +1,5 @@ // RUN: %exploded_graph_rewriter %s | FileCheck %s -// FIXME: Substitution doesn't seem to work on Windows. -// UNSUPPORTED: system-windows - // CHECK: Store: // CHECK-SAME: (0x2) // CHECK-SAME:
diff --git a/clang/test/Analysis/exploded-graph-rewriter/store_diff.dot b/clang/test/Analysis/exploded-graph-rewriter/store_diff.dot index 8dd5fb44cd7476..6ea65ff8539f89 100644 --- a/clang/test/Analysis/exploded-graph-rewriter/store_diff.dot +++ b/clang/test/Analysis/exploded-graph-rewriter/store_diff.dot @@ -1,8 +1,5 @@ // RUN: %exploded_graph_rewriter -d %s | FileCheck %s -// FIXME: Substitution doesn't seem to work on Windows. -// UNSUPPORTED: system-windows - Node0x1 [shape=record,label= "{ { "node_id": 1, diff --git a/clang/test/Analysis/exploded-graph-rewriter/topology.dot b/clang/test/Analysis/exploded-graph-rewriter/topology.dot index b85115ebeac72a..85e6d5b37ab9d7 100644 --- a/clang/test/Analysis/exploded-graph-rewriter/topology.dot +++ b/clang/test/Analysis/exploded-graph-rewriter/topology.dot @@ -3,9 +3,6 @@ // RUN: %exploded_graph_rewriter -t %s \ // RUN: | FileCheck -check-prefixes=TOPOLOGY %s -// FIXME: Substitution doesn't seem to work on Windows. -// UNSUPPORTED: system-windows - // NORMAL: Program point // TOPOLOGY-NOT: Program point // NORMAL: Checker State diff --git a/clang/test/Analysis/exploded-graph-rewriter/trimmers.dot b/clang/test/Analysis/exploded-graph-rewriter/trimmers.dot index df6270d0ef1e24..457792fcf9649e 100644 --- a/clang/test/Analysis/exploded-graph-rewriter/trimmers.dot +++ b/clang/test/Analysis/exploded-graph-rewriter/trimmers.dot @@ -13,9 +13,6 @@ // RUN: %exploded_graph_rewriter --to 4 -s %s \ // RUN: | FileCheck %s -check-prefixes=ONE,TWO,NOTHREE,FOUR -// FIXME: Substitution doesn't seem to work on Windows. -// UNSUPPORTED: system-windows - Node0x1 [shape=record,label= "{{ "state_id": 0, "program_state": null, "program_points": [ { diff --git a/clang/test/Analysis/scan-build/exclude_directories.test b/clang/test/Analysis/scan-build/exclude_directories.test index 60ea0aa002af32..c161e51b6d26c5 100644 --- a/clang/test/Analysis/scan-build/exclude_directories.test +++ b/clang/test/Analysis/scan-build/exclude_directories.test @@ -1,9 +1,6 @@ // FIXME: Actually, "perl". REQUIRES: shell -// FIXME: Should ideally work on Windows. -UNSUPPORTED: system-windows - RUN: rm -rf %t.output_dir && mkdir %t.output_dir RUN: %scan-build -o %t.output_dir %clang -S \ RUN: %S/Inputs/multidirectory_project/directory1/file1.c \ diff --git a/clang/test/Analysis/scan-build/help.test b/clang/test/Analysis/scan-build/help.test index 556a4a74e82b25..61915d32609439 100644 --- a/clang/test/Analysis/scan-build/help.test +++ b/clang/test/Analysis/scan-build/help.test @@ -1,9 +1,6 @@ // FIXME: Actually, "perl". REQUIRES: shell -// FIXME: Should ideally work on Windows. -UNSUPPORTED: system-windows - RUN: %scan-build -h | FileCheck %s RUN: %scan-build --help | FileCheck %s diff --git a/clang/test/Analysis/scan-build/html_output.test b/clang/test/Analysis/scan-build/html_output.test index b080b5f6a9c0b9..eed2051d4df627 100644 --- a/clang/test/Analysis/scan-build/html_output.test +++ b/clang/test/Analysis/scan-build/html_output.test @@ -1,9 +1,6 @@ // FIXME: Actually, "perl". REQUIRES: shell -// FIXME: Should ideally work on Windows. -UNSUPPORTED: system-windows - RUN: rm -rf %t.output_dir && mkdir %t.output_dir RUN: %scan-build -o %t.output_dir %clang -S %S/Inputs/single_null_dereference.c \ RUN: | FileCheck %s -check-prefix CHECK-STDOUT diff --git a/clang/test/Analysis/scan-build/plist_html_output.test b/clang/test/Analysis/scan-build/plist_html_output.test index 97997c24366331..c07891e35fbf33 100644 --- a/clang/test/Analysis/scan-build/plist_html_output.test +++ b/clang/test/Analysis/scan-build/plist_html_output.test @@ -1,9 +1,6 @@ // FIXME: Actually, "perl". REQUIRES: shell -// FIXME: Should ideally work on Windows. -UNSUPPORTED: system-windows - RUN: rm -rf %t.output_dir && mkdir %t.output_dir RUN: %scan-build -plist-html -o %t.output_dir %clang -S %S/Inputs/single_null_dereference.c \ RUN: | FileCheck %s -check-prefix CHECK-STDOUT diff --git a/clang/test/Analysis/scan-build/plist_output.test b/clang/test/Analysis/scan-build/plist_output.test index 2e14ba698bfcea..0112e84630eda2 100644 --- a/clang/test/Analysis/scan-build/plist_output.test +++ b/clang/test/Analysis/scan-build/plist_output.test @@ -1,9 +1,6 @@ // FIXME: Actually, "perl". REQUIRES: shell -// FIXME: Should ideally work on Windows. -UNSUPPORTED: system-windows - RUN: rm -rf %t.output_dir && mkdir %t.output_dir RUN: %scan-build -plist -o %t.output_dir %clang -S %S/Inputs/single_null_dereference.c \ RUN: | FileCheck %s -check-prefix CHECK-STDOUT