Skip to content

Commit 805e205

Browse files
committed
Update clang version
1 parent 522bd3d commit 805e205

File tree

2 files changed

+13
-14
lines changed

2 files changed

+13
-14
lines changed

src/01-LLVM架构简介.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-l
148148
!2 = !{i32 7, !"PIE Level", i32 2}
149149
!3 = !{i32 7, !"uwtable", i32 2}
150150
!4 = !{i32 7, !"frame-pointer", i32 2}
151-
!5 = !{!"Homebrew clang version 16.0.4"}
151+
!5 = !{!"Homebrew clang version 16.0.6"}
152152
```
153153

154154
这看上去更加让人迷惑。然而,我们同样地只需要关注五行内容:
@@ -201,7 +201,7 @@ attributes #0 = { mustprogress nofree norecurse nosync nounwind willreturn memor
201201
!1 = !{i32 8, !"PIC Level", i32 2}
202202
!2 = !{i32 7, !"PIE Level", i32 2}
203203
!3 = !{i32 7, !"uwtable", i32 2}
204-
!4 = !{!"Homebrew clang version 16.0.4"}
204+
!4 = !{!"Homebrew clang version 16.0.6"}
205205
```
206206

207207
我们观察`@main`函数,可以发现其函数体从最开始的三行,变成了最终的一行。
@@ -249,7 +249,7 @@ main: # @main
249249
.size main, .Lfunc_end0-main
250250
.cfi_endproc
251251
# -- End function
252-
.ident "Homebrew clang version 16.0.4"
252+
.ident "Homebrew clang version 16.0.6"
253253
.section ".note.GNU-stack","",@progbits
254254
```
255255

src/04-类型系统.md

+10-11
Original file line numberDiff line numberDiff line change
@@ -318,13 +318,14 @@ define i32 @main() {
318318
在我们使用Clang将C语言程序输出成LLVM IR时,会发现代码的最后几行有
319319

320320
```llvm
321-
!llvm.module.flags = !{!0, !1, !2}
322-
!llvm.ident = !{!3}
323-
324-
!0 = !{i32 2, !"SDK Version", [3 x i32] [i32 10, i32 15, i32 4]}
325-
!1 = !{i32 1, !"wchar_size", i32 4}
326-
!2 = !{i32 7, !"PIC Level", i32 2}
327-
!3 = !{!"Apple clang version 11.0.3 (clang-1103.0.32.62)"}
321+
!llvm.module.flags = !{!0, !1, !2, !3}
322+
!llvm.ident = !{!4}
323+
324+
!0 = !{i32 1, !"wchar_size", i32 4}
325+
!1 = !{i32 8, !"PIC Level", i32 2}
326+
!2 = !{i32 7, !"PIE Level", i32 2}
327+
!3 = !{i32 7, !"uwtable", i32 2}
328+
!4 = !{!"Homebrew clang version 16.0.6"}
328329
```
329330

330331
类似于这样的东西。
@@ -335,9 +336,7 @@ define i32 @main() {
335336
clang -S -emit-llvm -g test.c
336337
```
337338

338-
来在LLVM IR中附加额外的Debug信息。
339-
340-
LLVM IR的语法指南中有专门的一大章[Metadata](http://llvm.org/docs/LangRef.html#metadata)来解释各种元数据,这里与我们核心内容联系不太密切,我就不再赘述了。
339+
来在LLVM IR中附加额外的Debug信息。关于元数据,在后续的章节里会有更具体的介绍。
341340

342341
## 属性
343342

@@ -365,4 +364,4 @@ define void @foo #0 {
365364
}
366365
```
367366

368-
直接使用`#0`即可。
367+
直接使用`#0`即可。关于属性,后续也会有专门的章节进行介绍。

0 commit comments

Comments
 (0)