diff --git a/clang/test/Modules/ASTSignature.c b/clang/test/Modules/ASTSignature.c new file mode 100644 --- /dev/null +++ b/clang/test/Modules/ASTSignature.c @@ -0,0 +1,18 @@ +// RUN: rm -rf %t +// RUN: %clang_cc1 -iquote %S/Inputs/ASTHash/ -fsyntax-only -fmodules \ +// RUN: -fimplicit-module-maps -fmodules-strict-context-hash \ +// RUN: -fmodules-cache-path=%t %s -Rmodule-build 2> %t1 +// RUN: %clang_cc1 -iquote "/dev/null" -iquote %S/Inputs/ASTHash/ -fsyntax-only \ +// RUN: -fmodules -fimplicit-module-maps -fmodules-strict-context-hash \ +// RUN: -fmodules-cache-path=%t %s -Rmodule-build 2> %t2 +// RUN: cat %t1 | grep "remark: building module 'MyHeader2'" | cut -d "'" -f 4 \ +// RUN: | while read -r MODULE; do llvm-bcanalyzer --dump --disable-histogram \ +// RUN: $MODULE | grep "AST_SIGNATURE" > %t1.sig; done +// RUN: cat %t2 | grep "remark: building module 'MyHeader2'" | cut -d "'" -f 4 \ +// RUN: | while read -r MODULE; do llvm-bcanalyzer --dump --disable-histogram \ +// RUN: $MODULE | grep "AST_SIGNATURE" > %t1.sig; done +// RUN: diff %t1.sig %t2.sig + +#include "my_header_2.h" + +my_int var = 42; diff --git a/clang/test/Modules/Inputs/ASTHash/module.modulemap b/clang/test/Modules/Inputs/ASTHash/module.modulemap new file mode 100644 --- /dev/null +++ b/clang/test/Modules/Inputs/ASTHash/module.modulemap @@ -0,0 +1,8 @@ +module MyHeader1 { + header "my_header_1.h" +} + +module MyHeader2 { + header "my_header_2.h" + export * +} diff --git a/clang/test/Modules/Inputs/ASTHash/my_header_1.h b/clang/test/Modules/Inputs/ASTHash/my_header_1.h new file mode 100644 --- /dev/null +++ b/clang/test/Modules/Inputs/ASTHash/my_header_1.h @@ -0,0 +1 @@ +typedef int my_int; diff --git a/clang/test/Modules/Inputs/ASTHash/my_header_2.h b/clang/test/Modules/Inputs/ASTHash/my_header_2.h new file mode 100644 --- /dev/null +++ b/clang/test/Modules/Inputs/ASTHash/my_header_2.h @@ -0,0 +1,3 @@ +#include "my_header_1.h" + +extern my_int var;