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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@305965
91177308-0d34-0410-b5e6-
96231b3b80d8
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) {
YAML: - Kind: LF_ENUMERATE
YAML: Enumerator:
YAML: Attrs: 3
-YAML: Value: -32768
+YAML: Value: 32768
YAML: Name: eAnonymousUsage
YAML: - Kind: LF_ENUMERATE
YAML: Enumerator: