Issue |
137152
|
Summary |
[GlobalOpt] Incorrect change of atomic type
|
Labels |
llvm:crash,
llvm:optimizations
|
Assignees |
nikic
|
Reporter |
nikic
|
```llvm
; RUN: opt -S -passes=globalopt
@g = internal global ptr null, align 8
define void @init() {
%alloc = call ptr @malloc(i64 48)
store atomic ptr %alloc, ptr @g seq_cst, align 8
ret void
}
define i1 @check() {
%val = load atomic ptr, ptr @g seq_cst, align 8
%cmp = icmp eq ptr %val, null
ret i1 %cmp
}
declare ptr @malloc(i64) allockind("alloc,uninitialized") allocsize(0)
```
Results in:
```
atomic memory access' size must be byte-sized
i1 store atomic i1 true, ptr @g.init seq_cst, align 1
atomic memory access' size must be byte-sized
i1 %g.init.val = load atomic i1, ptr @g.init seq_cst, align 1
LLVM ERROR: Broken module found, compilation aborted!
```
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs