static const bool flow = true;
};
-template <> struct ScalarTraits<DiagnosticInfoOptimizationBase::Argument> {
- static void output(const DiagnosticInfoOptimizationBase::Argument &Arg,
- void *, llvm::raw_ostream &out) {
- out << Arg.Key << ": " << Arg.Val;
- }
-
- static StringRef input(StringRef scalar, void *,
- DiagnosticInfoOptimizationBase::Argument &Arg) {
- llvm_unreachable("input not yet implemented");
+// Implement this as a mapping for now to get proper quotation for the value.
+template <> struct MappingTraits<DiagnosticInfoOptimizationBase::Argument> {
+ static void mapping(IO &io, DiagnosticInfoOptimizationBase::Argument &A) {
+ assert(io.outputting() && "input not yet implemented");
+ io.mapRequired(A.Key.data(), A.Val);
}
-
- static bool mustQuote(StringRef) { return false; }
};
} // end namespace yaml
; YAML-NEXT: Hotness: 30
; YAML-NEXT: Args:
; YAML-NEXT: - Callee: foo
-; YAML-NEXT: - String: can be inlined into
+; YAML-NEXT: - String: ' can be inlined into '
; YAML-NEXT: - Caller: bar
-; YAML-NEXT: - String: with cost=
-; YAML-NEXT: - Cost: {{[0-9]+}}
-; YAML-NEXT: - String: (threshold=
-; YAML-NEXT: - Threshold: {{[0-9]+}}
-; YAML-NEXT: - String: )
+; YAML-NEXT: - String: ' with cost='
+; YAML-NEXT: - Cost: '{{[0-9]+}}'
+; YAML-NEXT: - String: ' (threshold='
+; YAML-NEXT: - Threshold: '{{[0-9]+}}'
+; YAML-NEXT: - String: ')'
; YAML-NEXT: ...
; YAML-NEXT: --- !Passed
; YAML-NEXT: Pass: inline
; YAML-NEXT: Hotness: 30
; YAML-NEXT: Args:
; YAML-NEXT: - Callee: foo
-; YAML-NEXT: - String: inlined into
+; YAML-NEXT: - String: ' inlined into '
; YAML-NEXT: - Caller: bar
; YAML-NEXT: ...
; YAML-NEXT: Hotness: 30
; YAML-NEXT: Args:
; YAML-NEXT: - Callee: foo
-; YAML-NEXT: - String: will not be inlined into
+; YAML-NEXT: - String: ' will not be inlined into '
; YAML-NEXT: - Caller: baz
-; YAML-NEXT: - String: because its definition is unavailable
+; YAML-NEXT: - String: ' because its definition is unavailable'
; YAML-NEXT: ...
; YAML-NEXT: --- !Missed
; YAML-NEXT: Pass: inline
; YAML-NEXT: Hotness: 30
; YAML-NEXT: Args:
; YAML-NEXT: - Callee: bar
-; YAML-NEXT: - String: will not be inlined into
+; YAML-NEXT: - String: ' will not be inlined into '
; YAML-NEXT: - Caller: baz
-; YAML-NEXT: - String: because its definition is unavailable
+; YAML-NEXT: - String: ' because its definition is unavailable'
; YAML-NEXT: ...
; ModuleID = '/tmp/s.c'