diff options
author | Bob Haarman <llvm@inglorion.net> | 2017-06-21 22:31:52 +0000 |
---|---|---|
committer | Bob Haarman <llvm@inglorion.net> | 2017-06-21 22:31:52 +0000 |
commit | 4d2711fbb505df9c27b65d869a0489669b55f981 (patch) | |
tree | ace2fc736e39cf52247172bec0b62807cbabcb9f | |
parent | a8b26936d051d49843ae79f86297ba98e73b1034 (diff) | |
download | bcm5719-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.cpp | 2 | ||||
-rw-r--r-- | llvm/test/DebugInfo/PDB/pdbdump-yaml-types.test | 2 |
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: |