diff --git a/clang/include/clang/Serialization/ASTBitCodes.h b/clang/include/clang/Serialization/ASTBitCodes.h --- a/clang/include/clang/Serialization/ASTBitCodes.h +++ b/clang/include/clang/Serialization/ASTBitCodes.h @@ -41,7 +41,7 @@ /// Version 4 of AST files also requires that the version control branch and /// revision match exactly, since there is no backward compatibility of /// AST files at this time. - const unsigned VERSION_MAJOR = 8; + const unsigned VERSION_MAJOR = 9; /// AST file minor version number supported by this version of /// Clang. diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -41,6 +41,7 @@ #include "clang/Lex/HeaderSearchOptions.h" #include "clang/Lex/PreprocessorOptions.h" #include "clang/Sema/CodeCompleteOptions.h" +#include "clang/Serialization/ASTBitCodes.h" #include "clang/Serialization/ModuleFileExtension.h" #include "clang/StaticAnalyzer/Core/AnalyzerOptions.h" #include "llvm/ADT/APInt.h" @@ -3635,6 +3636,11 @@ // CityHash, but this will do for now. hash_code code = hash_value(getClangFullRepositoryVersion()); + // Also include the serialization version, in case LLVM_APPEND_VC_REV is off + // and getClangFullRepositoryVersion() doesn't include git revision. + code = hash_combine(code, serialization::VERSION_MAJOR, + serialization::VERSION_MINOR); + // Extend the signature with the language options #define LANGOPT(Name, Bits, Default, Description) \ code = hash_combine(code, LangOpts->Name); diff --git a/clang/test/Modules/diagnostics.modulemap b/clang/test/Modules/diagnostics.modulemap --- a/clang/test/Modules/diagnostics.modulemap +++ b/clang/test/Modules/diagnostics.modulemap @@ -1,3 +1,4 @@ +// RUN: rm -rf %t // RUN: not %clang_cc1 -fmodules -fmodules-cache-path=%t -fmodule-map-file=%S/Inputs/diagnostics-aux.modulemap -fmodule-map-file=%s -fsyntax-only -x c++ /dev/null 2>&1 | FileCheck %s --implicit-check-not error: // CHECK: In file included from {{.*}}diagnostics-aux.modulemap:3: diff --git a/clang/test/Modules/exception-spec.cpp b/clang/test/Modules/exception-spec.cpp --- a/clang/test/Modules/exception-spec.cpp +++ b/clang/test/Modules/exception-spec.cpp @@ -1,3 +1,4 @@ +// RUN: rm -rf %t // RUN: %clang_cc1 -x c++ -std=c++17 -fmodules -fmodules-local-submodule-visibility -fmodules-cache-path=%t %s -verify // expected-no-diagnostics diff --git a/clang/test/Modules/merge-lifetime-extended-temporary.cpp b/clang/test/Modules/merge-lifetime-extended-temporary.cpp --- a/clang/test/Modules/merge-lifetime-extended-temporary.cpp +++ b/clang/test/Modules/merge-lifetime-extended-temporary.cpp @@ -1,3 +1,4 @@ +// RUN: rm -rf %t // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -x c++ -I%S/Inputs/merge-lifetime-extended-temporary -verify -std=c++11 %s -DORDER=1 // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -x c++ -I%S/Inputs/merge-lifetime-extended-temporary -verify -std=c++11 %s -DORDER=2 diff --git a/clang/test/Modules/objc-method-redecl.m b/clang/test/Modules/objc-method-redecl.m --- a/clang/test/Modules/objc-method-redecl.m +++ b/clang/test/Modules/objc-method-redecl.m @@ -1,3 +1,4 @@ +// RUN: rm -rf %t // RUN: %clang_cc1 -fmodules -fmodules-cache-path=%t -x objective-c-header -emit-pch %S/Inputs/objc-method-redecl.h -o %t.pch -Wno-objc-root-class // RUN: %clang_cc1 -fmodules -fmodules-cache-path=%t -x objective-c -include-pch %t.pch %s -verify -Wno-objc-root-class // expected-no-diagnostics diff --git a/clang/test/Modules/using-decl-inheritance.cpp b/clang/test/Modules/using-decl-inheritance.cpp --- a/clang/test/Modules/using-decl-inheritance.cpp +++ b/clang/test/Modules/using-decl-inheritance.cpp @@ -1,3 +1,4 @@ +// RUN: rm -rf %t // RUN: %clang_cc1 -x c++ -fmodules -fmodules-local-submodule-visibility -fmodules-cache-path=%t %s -verify // RUN: %clang_cc1 -x c++ -fmodules -fmodules-cache-path=%t %s -verify