From a739d9a023fe14d1cd5cc9838b8ad4a06f265c48 Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Wed, 14 Sep 2011 15:55:12 +0000 Subject: Encode the module hash in base-36, to reduce the length of the strings a bit llvm-svn: 139696 --- clang/lib/Frontend/CompilerInvocation.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'clang/lib/Frontend/CompilerInvocation.cpp') diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index 6c47d7b..c594526 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -1991,8 +1991,12 @@ std::string CompilerInvocation::getModuleHash() const { Signature.add((unsigned)T.getOS(), 5); Signature.add((unsigned)T.getEnvironment(), 4); + // Extend the signature with preprocessor options. + Signature.add(getPreprocessorOpts().UsePredefines, 1); + Signature.add(getPreprocessorOpts().DetailedRecord, 1); + // We've generated the signature. Treat it as one large APInt that we'll - // encode as hex and return. + // encode in base-36 and return. Signature.flush(); - return Signature.getAsInteger().toString(16, /*Signed=*/false); + return Signature.getAsInteger().toString(36, /*Signed=*/false); } -- cgit v1.1