mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-28 04:33:05 +00:00
a541b0fde2
for sanity. This didn't turn up any bugs. Change CallGraphNode to maintain its "callsite" information in the call edges list as a WeakVH instead of as an instruction*. This fixes a broad class of dangling pointer bugs, and makes CallGraph have a number of useful invariants again. This fixes the class of problem indicated by PR4029 and PR3601. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80663 91177308-0d34-0410-b5e6-96231b3b80d8
24 lines
1020 B
LLVM
24 lines
1020 B
LLVM
; RUN: llvm-as < %s | opt -argpromotion -simplifycfg -constmerge | llvm-dis
|
|
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
|
|
target triple = "i386-apple-darwin10.0"
|
|
|
|
%struct.VEC2 = type { double, double, double }
|
|
%struct.VERTEX = type { %struct.VEC2, %struct.VERTEX*, %struct.VERTEX* }
|
|
%struct.edge_rec = type { %struct.VERTEX*, %struct.edge_rec*, i32, i8* }
|
|
|
|
declare %struct.edge_rec* @alloc_edge() nounwind ssp
|
|
|
|
define i64 @build_delaunay(%struct.VERTEX* %tree, %struct.VERTEX* %extra) nounwind ssp {
|
|
entry:
|
|
br i1 undef, label %bb11, label %bb12
|
|
|
|
bb11: ; preds = %bb10
|
|
%a = call %struct.edge_rec* @alloc_edge() nounwind ; <%struct.edge_rec*> [#uses=0]
|
|
ret i64 123
|
|
|
|
bb12: ; preds = %bb10
|
|
%b = call %struct.edge_rec* @alloc_edge() nounwind ; <%struct.edge_rec*> [#uses=1]
|
|
%c = ptrtoint %struct.edge_rec* %b to i64
|
|
ret i64 %c
|
|
}
|