2
c/c.go
2
c/c.go
@@ -16,6 +16,7 @@
|
||||
|
||||
package c
|
||||
|
||||
// typedef unsigned int uint;
|
||||
import "C"
|
||||
import "unsafe"
|
||||
|
||||
@@ -26,6 +27,7 @@ const (
|
||||
type (
|
||||
Char = int8
|
||||
Int = C.int
|
||||
Uint = C.uint
|
||||
Pointer = unsafe.Pointer
|
||||
FilePtr = unsafe.Pointer
|
||||
)
|
||||
|
||||
13
cl/_testdata/uint/in.go
Normal file
13
cl/_testdata/uint/in.go
Normal file
@@ -0,0 +1,13 @@
|
||||
package main
|
||||
|
||||
import "github.com/goplus/llgo/c"
|
||||
|
||||
func f(a c.Uint) c.Uint {
|
||||
a++
|
||||
return a
|
||||
}
|
||||
|
||||
func main() {
|
||||
var a c.Uint = 100
|
||||
c.Printf(c.Str("Hello, %u\n"), f(a))
|
||||
}
|
||||
37
cl/_testdata/uint/out.ll
Normal file
37
cl/_testdata/uint/out.ll
Normal file
@@ -0,0 +1,37 @@
|
||||
; ModuleID = 'main'
|
||||
source_filename = "main"
|
||||
|
||||
@"main.init$guard" = global ptr null
|
||||
@0 = private unnamed_addr constant [11 x i8] c"Hello, %u\0A\00", align 1
|
||||
|
||||
define i32 @main.f(i32 %0) {
|
||||
_llgo_0:
|
||||
%1 = add i32 %0, 1
|
||||
ret i32 %1
|
||||
}
|
||||
|
||||
define void @main.init() {
|
||||
_llgo_0:
|
||||
%0 = load i1, ptr @"main.init$guard", align 1
|
||||
br i1 %0, label %_llgo_2, label %_llgo_1
|
||||
|
||||
_llgo_1: ; preds = %_llgo_0
|
||||
store i1 true, ptr @"main.init$guard", align 1
|
||||
br label %_llgo_2
|
||||
|
||||
_llgo_2: ; preds = %_llgo_1, %_llgo_0
|
||||
ret void
|
||||
}
|
||||
|
||||
define void @main() {
|
||||
_llgo_0:
|
||||
call void @"github.com/goplus/llgo/internal/runtime.init"()
|
||||
call void @main.init()
|
||||
%0 = call i32 @main.f(i32 100)
|
||||
%1 = call i32 (ptr, ...) @printf(ptr @0, i32 %0)
|
||||
ret void
|
||||
}
|
||||
|
||||
declare void @"github.com/goplus/llgo/internal/runtime.init"()
|
||||
|
||||
declare i32 @printf(ptr, ...)
|
||||
Reference in New Issue
Block a user