cl:compile with clang++
This commit is contained in:
@@ -1,35 +1,33 @@
|
||||
typedef union
|
||||
{
|
||||
typedef union {
|
||||
double d;
|
||||
float f;
|
||||
long v;
|
||||
long long ll;
|
||||
} castUnion;
|
||||
|
||||
double llgoToFloat64(long long v)
|
||||
{
|
||||
extern "C" {
|
||||
|
||||
double llgoToFloat64(long long v) {
|
||||
castUnion k;
|
||||
k.ll = v;
|
||||
return k.d;
|
||||
}
|
||||
|
||||
float llgoToFloat32(int v)
|
||||
{
|
||||
float llgoToFloat32(int v) {
|
||||
castUnion k;
|
||||
k.v = v;
|
||||
return k.f;
|
||||
}
|
||||
|
||||
long long llgoFromFloat64(double v)
|
||||
{
|
||||
long long llgoFromFloat64(double v) {
|
||||
castUnion k;
|
||||
k.d = v;
|
||||
return k.ll;
|
||||
}
|
||||
|
||||
int llgoFromFloat32(float v)
|
||||
{
|
||||
int llgoFromFloat32(float v) {
|
||||
castUnion k;
|
||||
k.f = v;
|
||||
return k.v;
|
||||
}
|
||||
}
|
||||
@@ -19,7 +19,7 @@ package bitcast
|
||||
import _ "unsafe"
|
||||
|
||||
const (
|
||||
LLGoFiles = "_cast/cast.c"
|
||||
LLGoFiles = "_cast/cast.cpp"
|
||||
LLGoPackage = "link"
|
||||
)
|
||||
|
||||
|
||||
@@ -9,13 +9,11 @@
|
||||
#include <dlfcn.h>
|
||||
#include <libunwind.h>
|
||||
|
||||
void *llgo_address() {
|
||||
return __builtin_return_address(0);
|
||||
}
|
||||
extern "C" {
|
||||
|
||||
int llgo_addrinfo(void *addr, Dl_info *info) {
|
||||
return dladdr(addr, info);
|
||||
}
|
||||
void *llgo_address() { return __builtin_return_address(0); }
|
||||
|
||||
int llgo_addrinfo(void *addr, Dl_info *info) { return dladdr(addr, info); }
|
||||
|
||||
void llgo_stacktrace(int skip, void *ctx, int (*fn)(void *ctx, void *pc, void *offset, void *sp, char *name)) {
|
||||
unw_cursor_t cursor;
|
||||
@@ -33,9 +31,10 @@ void llgo_stacktrace(int skip, void *ctx, int (*fn)(void *ctx, void *pc, void *o
|
||||
if (unw_get_reg(&cursor, UNW_REG_IP, &pc) == 0) {
|
||||
unw_get_proc_name(&cursor, fname, sizeof(fname), &offset);
|
||||
unw_get_reg(&cursor, UNW_REG_SP, &sp);
|
||||
if (fn(ctx, (void*)pc, (void*)offset, (void*)sp, fname) == 0) {
|
||||
if (fn(ctx, (void *)pc, (void *)offset, (void *)sp, fname) == 0) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -9,7 +9,7 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
LLGoFiles = "_wrap/debug.c"
|
||||
LLGoFiles = "_wrap/debug.cpp"
|
||||
)
|
||||
|
||||
type Info struct {
|
||||
|
||||
Reference in New Issue
Block a user