From 00ac5d8257bebf0260ba43ef2490b4c75fb4dcf8 Mon Sep 17 00:00:00 2001 From: Zachary Turner Date: Fri, 12 Oct 2018 16:24:09 +0000 Subject: [PATCH] Make YAML quote forward slashes. llvm-svn: 344357 --- include/llvm/Support/YAMLTraits.h | 7 ++++++- test/CodeGen/AArch64/arm64-spill-remarks.ll | 8 ++++---- test/ObjectYAML/MachO/DWARF-BigEndian.yaml | 4 ++-- test/ObjectYAML/MachO/DWARF-LittleEndian.yaml | 4 ++-- test/ObjectYAML/MachO/DWARF-debug_str.yaml | 2 +- test/ObjectYAML/MachO/dylib_dylinker_command.yaml | 4 ++-- test/Other/size-remarks.ll | 4 ++-- test/Transforms/GVN/opt-remarks.ll | 6 +++--- .../Transforms/Inline/optimization-remarks-passed-yaml.ll | 6 +++--- test/Transforms/Inline/optimization-remarks-yaml.ll | 8 ++++---- unittests/Support/YAMLIOTest.cpp | 4 +++- 11 files changed, 32 insertions(+), 25 deletions(-) diff --git a/include/llvm/Support/YAMLTraits.h b/include/llvm/Support/YAMLTraits.h index 5d029ad5ce9..6219755e83a 100644 --- a/include/llvm/Support/YAMLTraits.h +++ b/include/llvm/Support/YAMLTraits.h @@ -578,7 +578,6 @@ inline QuotingType needsQuotes(StringRef S) { // Safe scalar characters. case '_': case '-': - case '/': case '^': case '.': case ',': @@ -595,6 +594,12 @@ inline QuotingType needsQuotes(StringRef S) { // DEL (0x7F) are excluded from the allowed character range. case 0x7F: return QuotingType::Double; + // Forward slash is allowed to be unquoted, but we quote it anyway. We have + // many tests that use FileCheck against YAML output, and this output often + // contains paths. If we quote backslashes but not forward slashes then + // paths will come out either quoted or unquoted depending on which platform + // the test is run on, making FileCheck comparisons difficult. + case '/': default: { // C0 control block (0x0 - 0x1F) is excluded from the allowed character // range. diff --git a/test/CodeGen/AArch64/arm64-spill-remarks.ll b/test/CodeGen/AArch64/arm64-spill-remarks.ll index 53a16ed748b..2d187a74445 100644 --- a/test/CodeGen/AArch64/arm64-spill-remarks.ll +++ b/test/CodeGen/AArch64/arm64-spill-remarks.ll @@ -38,7 +38,7 @@ ; YAML: --- !Missed ; YAML: Pass: regalloc ; YAML: Name: LoopSpillReload -; YAML: DebugLoc: { File: /tmp/kk.c, Line: 3, Column: 20 } +; YAML: DebugLoc: { File: '/tmp/kk.c', Line: 3, Column: 20 } ; YAML: Function: fpr128 ; YAML: Hotness: 300 ; YAML: Args: @@ -51,7 +51,7 @@ ; YAML: --- !Missed ; YAML: Pass: regalloc ; YAML: Name: LoopSpillReload -; YAML: DebugLoc: { File: /tmp/kk.c, Line: 2, Column: 20 } +; YAML: DebugLoc: { File: '/tmp/kk.c', Line: 2, Column: 20 } ; YAML: Function: fpr128 ; YAML: Hotness: 30000 ; YAML: Args: @@ -64,7 +64,7 @@ ; YAML: --- !Missed ; YAML: Pass: regalloc ; YAML: Name: LoopSpillReload -; YAML: DebugLoc: { File: /tmp/kk.c, Line: 1, Column: 20 } +; YAML: DebugLoc: { File: '/tmp/kk.c', Line: 1, Column: 20 } ; YAML: Function: fpr128 ; YAML: Hotness: 300 ; YAML: Args: @@ -79,7 +79,7 @@ ; THRESHOLD_YAML: --- !Missed ; THRESHOLD_YAML: Pass: regalloc ; THRESHOLD_YAML: Name: LoopSpillReload -; THRESHOLD_YAML: DebugLoc: { File: /tmp/kk.c, Line: 2, Column: 20 } +; THRESHOLD_YAML: DebugLoc: { File: '/tmp/kk.c', Line: 2, Column: 20 } ; THRESHOLD_YAML: Function: fpr128 ; THRESHOLD_YAML: Hotness: 30000 ; THRESHOLD_YAML: Args: diff --git a/test/ObjectYAML/MachO/DWARF-BigEndian.yaml b/test/ObjectYAML/MachO/DWARF-BigEndian.yaml index adc95b95010..c6a45cd36ea 100644 --- a/test/ObjectYAML/MachO/DWARF-BigEndian.yaml +++ b/test/ObjectYAML/MachO/DWARF-BigEndian.yaml @@ -376,8 +376,8 @@ DWARF: #CHECK: DWARF: #CHECK: debug_str: #CHECK: - 'clang version 4.0.0 (trunk 290181) (llvm/trunk 290209)' -#CHECK: - ../compiler-rt/lib/builtins/absvdi2.c -#CHECK: - /Users/cbieneman/dev/open-source/llvm-build-rel +#CHECK: - '../compiler-rt/lib/builtins/absvdi2.c' +#CHECK: - '/Users/cbieneman/dev/open-source/llvm-build-rel' #CHECK: - int #CHECK: - di_int #CHECK: - long long int diff --git a/test/ObjectYAML/MachO/DWARF-LittleEndian.yaml b/test/ObjectYAML/MachO/DWARF-LittleEndian.yaml index 1d6da66a073..1e136e67be1 100644 --- a/test/ObjectYAML/MachO/DWARF-LittleEndian.yaml +++ b/test/ObjectYAML/MachO/DWARF-LittleEndian.yaml @@ -365,8 +365,8 @@ DWARF: #CHECK: DWARF: #CHECK: debug_str: #CHECK: - 'clang version 4.0.0 (trunk 290181) (llvm/trunk 290209)' -#CHECK: - ../compiler-rt/lib/builtins/absvdi2.c -#CHECK: - /Users/cbieneman/dev/open-source/llvm-build-rel +#CHECK: - '../compiler-rt/lib/builtins/absvdi2.c' +#CHECK: - '/Users/cbieneman/dev/open-source/llvm-build-rel' #CHECK: - int #CHECK: - di_int #CHECK: - long long int diff --git a/test/ObjectYAML/MachO/DWARF-debug_str.yaml b/test/ObjectYAML/MachO/DWARF-debug_str.yaml index 417a755642b..84c5e22d255 100644 --- a/test/ObjectYAML/MachO/DWARF-debug_str.yaml +++ b/test/ObjectYAML/MachO/DWARF-debug_str.yaml @@ -257,7 +257,7 @@ DWARF: #CHECK: - '' #CHECK: - 'clang version 4.0.0 (trunk 288677) (llvm/trunk 288676)' #CHECK: - hello_world.c -#CHECK: - /Users/cbieneman/dev/open-source/llvm-build-rel +#CHECK: - '/Users/cbieneman/dev/open-source/llvm-build-rel' #CHECK: - main #CHECK: - argc #CHECK: - argv diff --git a/test/ObjectYAML/MachO/dylib_dylinker_command.yaml b/test/ObjectYAML/MachO/dylib_dylinker_command.yaml index 9184e3c5143..5fc6afa536e 100644 --- a/test/ObjectYAML/MachO/dylib_dylinker_command.yaml +++ b/test/ObjectYAML/MachO/dylib_dylinker_command.yaml @@ -40,7 +40,7 @@ LoadCommands: #CHECK: - cmd: LC_LOAD_DYLINKER #CHECK: cmdsize: 32 #CHECK: name: 12 -#CHECK: PayloadString: /usr/lib/dyld +#CHECK: PayloadString: '/usr/lib/dyld' #CHECK: ZeroPadBytes: 7 #CHECK: - cmd: LC_LOAD_DYLIB #CHECK: cmdsize: 48 @@ -58,5 +58,5 @@ LoadCommands: #CHECK: timestamp: 2 #CHECK: current_version: 80349697 #CHECK: compatibility_version: 65536 -#CHECK: PayloadString: /usr/lib/libSystem.B.dylib +#CHECK: PayloadString: '/usr/lib/libSystem.B.dylib' #CHECK: ZeroPadBytes: 6 diff --git a/test/Other/size-remarks.ll b/test/Other/size-remarks.ll index 34cb1202bb9..1e96dd02207 100644 --- a/test/Other/size-remarks.ll +++ b/test/Other/size-remarks.ll @@ -32,7 +32,7 @@ ; CGSCC-NEXT: Name: IRSizeChange ; CGSCC-NEXT: Function: ; CGSCC-NEXT: Args: -; CGSCC-NEXT: - Pass: Function Integration/Inlining +; CGSCC-NEXT: - Pass: 'Function Integration/Inlining' ; CGSCC-NEXT: - String: ': IR instruction count changed from ' ; CGSCC-NEXT: - IRInstrsBefore: '[[ORIG]]' ; CGSCC-NEXT: - String: ' to ' @@ -44,7 +44,7 @@ ; CGSCC-NEXT: Name: FunctionIRSizeChange ; CGSCC-NEXT: Function: ; CGSCC-NEXT: Args: -; CGSCC-NEXT: - Pass: Function Integration/Inlining +; CGSCC-NEXT: - Pass: 'Function Integration/Inlining' ; CGSCC-NEXT: - String: ': Function: ' ; CGSCC-NEXT: - Function: bar ; CGSCC-NEXT: - String: ': IR instruction count changed from ' diff --git a/test/Transforms/GVN/opt-remarks.ll b/test/Transforms/GVN/opt-remarks.ll index 6919528bb83..120ff36f204 100644 --- a/test/Transforms/GVN/opt-remarks.ll +++ b/test/Transforms/GVN/opt-remarks.ll @@ -49,7 +49,7 @@ ; YAML-NEXT: --- !Missed ; YAML-NEXT: Pass: gvn ; YAML-NEXT: Name: LoadClobbered -; YAML-NEXT: DebugLoc: { File: /tmp/s.c, Line: 3, Column: 3 } +; YAML-NEXT: DebugLoc: { File: '/tmp/s.c', Line: 3, Column: 3 } ; YAML-NEXT: Function: may_alias ; YAML-NEXT: Args: ; YAML-NEXT: - String: 'load of type ' @@ -57,10 +57,10 @@ ; YAML-NEXT: - String: ' not eliminated' ; YAML-NEXT: - String: ' in favor of ' ; YAML-NEXT: - OtherAccess: load -; YAML-NEXT: DebugLoc: { File: /tmp/s.c, Line: 1, Column: 13 } +; YAML-NEXT: DebugLoc: { File: '/tmp/s.c', Line: 1, Column: 13 } ; YAML-NEXT: - String: ' because it is clobbered by ' ; YAML-NEXT: - ClobberedBy: store -; YAML-NEXT: DebugLoc: { File: /tmp/s.c, Line: 2, Column: 10 } +; YAML-NEXT: DebugLoc: { File: '/tmp/s.c', Line: 2, Column: 10 } ; YAML-NEXT: ... define i32 @arg(i32* %p, i32 %i) { diff --git a/test/Transforms/Inline/optimization-remarks-passed-yaml.ll b/test/Transforms/Inline/optimization-remarks-passed-yaml.ll index 0ac76354a2b..8692abfaf19 100644 --- a/test/Transforms/Inline/optimization-remarks-passed-yaml.ll +++ b/test/Transforms/Inline/optimization-remarks-passed-yaml.ll @@ -22,15 +22,15 @@ ; YAML: --- !Passed ; YAML-NEXT: Pass: inline ; YAML-NEXT: Name: Inlined -; YAML-NEXT: DebugLoc: { File: /tmp/s.c, Line: 4, Column: 10 } +; YAML-NEXT: DebugLoc: { File: '/tmp/s.c', Line: 4, Column: 10 } ; YAML-NEXT: Function: bar ; YAML-NEXT: Hotness: 30 ; YAML-NEXT: Args: ; YAML-NEXT: - Callee: foo -; YAML-NEXT: DebugLoc: { File: /tmp/s.c, Line: 1, Column: 0 } +; YAML-NEXT: DebugLoc: { File: '/tmp/s.c', Line: 1, Column: 0 } ; YAML-NEXT: - String: ' inlined into ' ; YAML-NEXT: - Caller: bar -; YAML-NEXT: DebugLoc: { File: /tmp/s.c, Line: 3, Column: 0 } +; YAML-NEXT: DebugLoc: { File: '/tmp/s.c', Line: 3, Column: 0 } ; YAML-NEXT: - String: ' with ' ; YAML-NEXT: - String: '(cost=' ; YAML-NEXT: - Cost: '{{[0-9\-]+}}' diff --git a/test/Transforms/Inline/optimization-remarks-yaml.ll b/test/Transforms/Inline/optimization-remarks-yaml.ll index cb366dbbdd3..10a93f5cd79 100644 --- a/test/Transforms/Inline/optimization-remarks-yaml.ll +++ b/test/Transforms/Inline/optimization-remarks-yaml.ll @@ -52,27 +52,27 @@ ; YAML: --- !Missed ; YAML-NEXT: Pass: inline ; YAML-NEXT: Name: NoDefinition -; YAML-NEXT: DebugLoc: { File: /tmp/s.c, Line: 5, Column: 10 } +; YAML-NEXT: DebugLoc: { File: '/tmp/s.c', Line: 5, Column: 10 } ; YAML-NEXT: Function: baz ; YAML-NEXT: Hotness: 30 ; YAML-NEXT: Args: ; YAML-NEXT: - Callee: foo ; YAML-NEXT: - String: ' will not be inlined into ' ; YAML-NEXT: - Caller: baz -; YAML-NEXT: DebugLoc: { File: /tmp/s.c, Line: 4, Column: 0 } +; YAML-NEXT: DebugLoc: { File: '/tmp/s.c', Line: 4, Column: 0 } ; YAML-NEXT: - String: ' because its definition is unavailable' ; YAML-NEXT: ... ; YAML-NEXT: --- !Missed ; YAML-NEXT: Pass: inline ; YAML-NEXT: Name: NoDefinition -; YAML-NEXT: DebugLoc: { File: /tmp/s.c, Line: 5, Column: 18 } +; YAML-NEXT: DebugLoc: { File: '/tmp/s.c', Line: 5, Column: 18 } ; YAML-NEXT: Function: baz ; YAML-NEXT: Hotness: 30 ; YAML-NEXT: Args: ; YAML-NEXT: - Callee: bar ; YAML-NEXT: - String: ' will not be inlined into ' ; YAML-NEXT: - Caller: baz -; YAML-NEXT: DebugLoc: { File: /tmp/s.c, Line: 4, Column: 0 } +; YAML-NEXT: DebugLoc: { File: '/tmp/s.c', Line: 4, Column: 0 } ; YAML-NEXT: - String: ' because its definition is unavailable' ; YAML-NEXT: ... diff --git a/unittests/Support/YAMLIOTest.cpp b/unittests/Support/YAMLIOTest.cpp index 4530482ec80..94e9874147f 100644 --- a/unittests/Support/YAMLIOTest.cpp +++ b/unittests/Support/YAMLIOTest.cpp @@ -2543,7 +2543,9 @@ TEST(YAMLIO, TestEscaped) { // Single quote TestEscaped("@abc@", "'@abc@'"); // No quote - TestEscaped("abc/", "abc/"); + TestEscaped("abc", "abc"); + // Forward slash quoted + TestEscaped("abc/", "'abc/'"); // Double quote non-printable TestEscaped("\01@abc@", "\"\\x01@abc@\""); // Double quote inside single quote