Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
07522527
R
Rust
项目概览
int
/
Rust
12 个月 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
Rust
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
07522527
编写于
12月 03, 2011
作者:
J
Josh Matthews
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Use proper size and alignment of types for debuginfo.
上级
1da4b3b9
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
23 addition
and
20 deletion
+23
-20
src/comp/middle/debuginfo.rs
src/comp/middle/debuginfo.rs
+23
-20
未找到文件。
src/comp/middle/debuginfo.rs
浏览文件 @
07522527
import
std
::{
vec
,
str
,
option
,
unsafe
,
fs
};
import
std
::{
vec
,
str
,
option
,
unsafe
,
fs
,
sys
};
import
std
::
map
::
hashmap
;
import
lib
::
llvm
::
llvm
;
import
lib
::
llvm
::
llvm
::
ValueRef
;
...
...
@@ -221,24 +221,27 @@ fn get_ty_metadata(cx: @crate_ctxt, t: ty::t, ty: @ast::ty) -> @metadata<tydesc_
option
::
some
(
md
)
{
ret
md
;
}
option
::
none
.
{}
}
let
(
name
,
size
,
encoding
)
=
alt
ty
.node
{
ast
::
ty_bool
.
{
(
"bool"
,
1
,
DW_ATE_boolean
)
}
ast
::
ty_int
.
{
(
"int"
,
32
,
DW_ATE_signed
)
}
//XXX machine-dependent?
ast
::
ty_uint
.
{
(
"uint"
,
32
,
DW_ATE_unsigned
)
}
//XXX machine-dependent?
ast
::
ty_float
.
{
(
"float"
,
32
,
DW_ATE_float
)
}
//XXX machine-dependent?
fn
size_and_align_of
<
T
>
()
->
(
int
,
int
)
{
(
sys
::
size_of
::
<
T
>
()
as
int
,
sys
::
align_of
::
<
T
>
()
as
int
)
}
let
(
name
,
(
size
,
align
),
encoding
)
=
alt
ty
.node
{
ast
::
ty_bool
.
{(
"bool"
,
size_and_align_of
::
<
bool
>
(),
DW_ATE_boolean
)}
ast
::
ty_int
.
{(
"int"
,
size_and_align_of
::
<
int
>
(),
DW_ATE_signed
)}
ast
::
ty_uint
.
{(
"uint"
,
size_and_align_of
::
<
uint
>
(),
DW_ATE_unsigned
)}
ast
::
ty_float
.
{(
"float"
,
size_and_align_of
::
<
float
>
(),
DW_ATE_float
)}
ast
::
ty_machine
(
m
)
{
alt
m
{
ast
::
ty_i8
.
{
(
"i8"
,
1
,
DW_ATE_signed_char
)
}
ast
::
ty_i16
.
{
(
"i16"
,
16
,
DW_ATE_signed
)
}
ast
::
ty_i32
.
{
(
"i32"
,
32
,
DW_ATE_signed
)
}
ast
::
ty_i64
.
{
(
"i64"
,
64
,
DW_ATE_signed
)
}
ast
::
ty_u8
.
{
(
"u8"
,
8
,
DW_ATE_unsigned_char
)
}
ast
::
ty_u16
.
{
(
"u16"
,
16
,
DW_ATE_unsigned
)
}
ast
::
ty_u32
.
{
(
"u32"
,
32
,
DW_ATE_unsigned
)
}
ast
::
ty_u64
.
{
(
"u64"
,
64
,
DW_ATE_unsigned
)
}
ast
::
ty_f32
.
{
(
"f32"
,
32
,
DW_ATE_float
)
}
ast
::
ty_f64
.
{
(
"f64"
,
64
,
DW_ATE_float
)
}
ast
::
ty_i8
.
{
(
"i8"
,
size_and_align_of
::
<
i8
>
(),
DW_ATE_signed_char
)
}
ast
::
ty_i16
.
{
(
"i16"
,
size_and_align_of
::
<
i16
>
(),
DW_ATE_signed
)
}
ast
::
ty_i32
.
{
(
"i32"
,
size_and_align_of
::
<
i32
>
(),
DW_ATE_signed
)
}
ast
::
ty_i64
.
{
(
"i64"
,
size_and_align_of
::
<
i64
>
(),
DW_ATE_signed
)
}
ast
::
ty_u8
.
{
(
"u8"
,
size_and_align_of
::
<
u8
>
(),
DW_ATE_unsigned_char
)
}
ast
::
ty_u16
.
{
(
"u16"
,
size_and_align_of
::
<
u16
>
(),
DW_ATE_unsigned
)
}
ast
::
ty_u32
.
{
(
"u32"
,
size_and_align_of
::
<
u32
>
(),
DW_ATE_unsigned
)
}
ast
::
ty_u64
.
{
(
"u64"
,
size_and_align_of
::
<
u64
>
(),
DW_ATE_unsigned
)
}
ast
::
ty_f32
.
{
(
"f32"
,
size_and_align_of
::
<
f32
>
(),
DW_ATE_float
)
}
ast
::
ty_f64
.
{
(
"f64"
,
size_and_align_of
::
<
f64
>
(),
DW_ATE_float
)
}
}
}
ast
::
ty_char
.
{
(
"char"
,
32
,
DW_ATE_unsigned
)
}
ast
::
ty_char
.
{
(
"char"
,
size_and_align_of
::
<
char
>
(),
DW_ATE_unsigned
)
}
};
let
fname
=
filename_from_span
(
cx
,
ty
.span
);
let
file_node
=
get_file_metadata
(
cx
,
fname
);
...
...
@@ -247,9 +250,9 @@ fn get_ty_metadata(cx: @crate_ctxt, t: ty::t, ty: @ast::ty) -> @metadata<tydesc_
cu_node
.node
,
llstr
(
name
),
file_node
.node
,
lli32
(
0
),
//XXX
basic types only
lli64
(
size
),
lli64
(
32
),
//XXX alignment?
lli32
(
0
),
//XXX
source line
lli64
(
size
*
8
),
// size in bits
lli64
(
align
*
8
),
// alignment in bits
lli64
(
0
),
//XXX offset?
lli32
(
0
),
//XXX flags?
lli32
(
encoding
)];
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录