summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBob Haarman <llvm@inglorion.net>2017-06-21 22:31:52 +0000
committerBob Haarman <llvm@inglorion.net>2017-06-21 22:31:52 +0000
commit4d2711fbb505df9c27b65d869a0489669b55f981 (patch)
treeace2fc736e39cf52247172bec0b62807cbabcb9f
parenta8b26936d051d49843ae79f86297ba98e73b1034 (diff)
downloadbcm5719-llvm-4d2711fbb505df9c27b65d869a0489669b55f981.tar.gz
bcm5719-llvm-4d2711fbb505df9c27b65d869a0489669b55f981.zip
[codeview] respect signedness of APSInts when printing to YAML
Summary: This fixes a bug where we always treat APSInts in Codeview as signed when writing them to YAML. One symptom of this problem is that llvm-pdbdump raw would show Enumerator Values that differ between the original PDB and a PDB that has been round-tripped through YAML. Reviewers: zturner Reviewed By: zturner Subscribers: llvm-commits, fhahn Differential Revision: https://reviews.llvm.org/D34013 llvm-svn: 305965
-rw-r--r--llvm/lib/ObjectYAML/CodeViewYAMLTypes.cpp2
-rw-r--r--llvm/test/DebugInfo/PDB/pdbdump-yaml-types.test2
2 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/ObjectYAML/CodeViewYAMLTypes.cpp b/llvm/lib/ObjectYAML/CodeViewYAMLTypes.cpp
index a03b9cd50fa..2d1cb4b1b27 100644
--- a/llvm/lib/ObjectYAML/CodeViewYAMLTypes.cpp
+++ b/llvm/lib/ObjectYAML/CodeViewYAMLTypes.cpp
@@ -138,7 +138,7 @@ StringRef ScalarTraits<TypeIndex>::input(StringRef Scalar, void *Ctx,
void ScalarTraits<APSInt>::output(const APSInt &S, void *,
llvm::raw_ostream &OS) {
- S.print(OS, true);
+ S.print(OS, S.isSigned());
}
StringRef ScalarTraits<APSInt>::input(StringRef Scalar, void *Ctx, APSInt &S) {
diff --git a/llvm/test/DebugInfo/PDB/pdbdump-yaml-types.test b/llvm/test/DebugInfo/PDB/pdbdump-yaml-types.test
index a01edcee1e9..493ff379198 100644
--- a/llvm/test/DebugInfo/PDB/pdbdump-yaml-types.test
+++ b/llvm/test/DebugInfo/PDB/pdbdump-yaml-types.test
@@ -785,7 +785,7 @@ YAML: Name: eIDLModuleUsage
YAML: - Kind: LF_ENUMERATE
YAML: Enumerator:
YAML: Attrs: 3
-YAML: Value: -32768
+YAML: Value: 32768
YAML: Name: eAnonymousUsage
YAML: - Kind: LF_ENUMERATE
YAML: Enumerator:
OpenPOWER on IntegriCloud