[PATCH] D141632: [Module] Respect `-fno-pch-timestamps` when building modules
Steven Wu via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Feb 1 10:34:46 PST 2023
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rG5cff68fca0bc: [Module] Respect `-fno-pch-timestamps` when building modules (authored by steven_wu).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D141632/new/
https://reviews.llvm.org/D141632
Files:
clang/lib/Frontend/FrontendActions.cpp
clang/test/Modules/timestamps.c
Index: clang/test/Modules/timestamps.c
===================================================================
--- /dev/null
+++ clang/test/Modules/timestamps.c
@@ -0,0 +1,30 @@
+/// Verify timestamps that gets embedded in the module
+#include <c-header.h>
+
+// RUN: rm -rf %t
+// RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fdisable-module-hash \
+// RUN: -fmodules-cache-path=%t -I %S/Inputs %s
+// RUN: cp %t/c_library.pcm %t1.pcm
+// RUN: llvm-bcanalyzer --dump --disable-histogram %t1.pcm > %t1.dump
+// RUN: FileCheck %s --check-prefix=CHECK --check-prefix=TIMESTAMP --input-file %t1.dump
+// RUN: rm -rf %t
+// RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fdisable-module-hash \
+// RUN: -fmodules-cache-path=%t -I %S/Inputs -fno-pch-timestamp %s
+// RUN: cp %t/c_library.pcm %t2.pcm
+// RUN: llvm-bcanalyzer --dump --disable-histogram %t2.pcm > %t2.dump
+// RUN: FileCheck %s --check-prefix=CHECK --check-prefix=NOTIMESTAMP --input-file %t2.dump
+// RUN: not diff %t1.dump %t2.dump
+
+
+// CHECK: <INPUT_FILES_BLOCK NumWords=[[#]] BlockCodeSize=[[#]]>
+// CHECK-NEXT: <INPUT_FILE abbrevid=4 op0=1 op1=[[#]]
+// TIMESTAMP-NOT: op2=0
+// NOTIMESTAMP: op2=0
+// CHECK-SAME: blob data = 'module.map'
+// CHECK-NEXT: <INPUT_FILE_HASH abbrevid=[[#]] op0=[[#]] op1=[[#]]/>
+// CHECK-NEXT: <INPUT_FILE abbrevid=4 op0=2 op1=[[#]]
+// TIMESTAMP-NOT: op2=0
+// NOTIMESTAMP: op2=0
+// CHECK-SAME: blob data = 'c-header.h'
+// CHECK-NEXT: <INPUT_FILE_HASH abbrevid=[[#]] op0=[[#]] op1=[[#]]/>
+// CHECK-NEXT: </INPUT_FILES_BLOCK>
Index: clang/lib/Frontend/FrontendActions.cpp
===================================================================
--- clang/lib/Frontend/FrontendActions.cpp
+++ clang/lib/Frontend/FrontendActions.cpp
@@ -202,7 +202,8 @@
/*AllowASTWithErrors=*/
+CI.getFrontendOpts().AllowPCMWithCompilerErrors,
/*IncludeTimestamps=*/
- +CI.getFrontendOpts().BuildingImplicitModule,
+ +CI.getFrontendOpts().BuildingImplicitModule &&
+ +CI.getFrontendOpts().IncludeTimestamps,
/*ShouldCacheASTInMemory=*/
+CI.getFrontendOpts().BuildingImplicitModule));
Consumers.push_back(CI.getPCHContainerWriter().CreatePCHContainerGenerator(
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D141632.494006.patch
Type: text/x-patch
Size: 2204 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20230201/ea8fe6a4/attachment-0001.bin>
More information about the cfe-commits
mailing list