xref: /llvm-project/clang/test/Modules/ASTSignature.c (revision 6fb08d8f558a6f28db7835acdb88cab83aea2eb4)
1 // RUN: rm -rf %t
2 // RUN: %clang_cc1             -iquote %S/Inputs/ASTHash/ -fsyntax-only \
3 // RUN:   -fmodules -fimplicit-module-maps -fmodules-strict-context-hash \
4 // RUN:   -fmodules-cache-path=%t -fdisable-module-hash %s
5 // RUN: cp %t/MyHeader2.pcm %t1.pcm
6 // RUN: rm -rf %t
7 // RUN: %clang_cc1 -nostdinc++ -iquote %S/Inputs/ASTHash/ -fsyntax-only \
8 // RUN:   -fmodules -fimplicit-module-maps -fmodules-strict-context-hash \
9 // RUN:   -fmodules-cache-path=%t -fdisable-module-hash %s
10 // RUN: cp %t/MyHeader2.pcm %t2.pcm
11 // RUN: llvm-bcanalyzer --dump --disable-histogram --show-binary-blobs %t1.pcm > %t1.dump
12 // RUN: llvm-bcanalyzer --dump --disable-histogram --show-binary-blobs %t2.pcm > %t2.dump
13 // RUN: cat %t1.dump %t2.dump | FileCheck %s
14 
15 #include "my_header_2.h"
16 
17 my_int var = 42;
18 
19 // CHECK:     <AST_BLOCK_HASH abbrevid={{[0-9]+}}/> blob data = '[[AST_BLOCK_HASH:.*]]'
20 // CHECK:     <SIGNATURE abbrevid={{[0-9]+}}/> blob data = '[[SIGNATURE:.*]]'
21 // CHECK:     <AST_BLOCK_HASH abbrevid={{[0-9]+}}/> blob data = '[[AST_BLOCK_HASH]]'
22 // CHECK-NOT: <SIGNATURE abbrevid={{[0-9]+}}/> blob data = '[[SIGNATURE]]'
23 // The modules built by this test are designed to yield the same AST but distinct AST files.
24 // If this test fails, it means that either the AST block has become non-relocatable,
25 // or the file signature stopped hashing some parts of the AST file.
26