Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
da642999
R
roslyn
项目概览
lwm1986
/
roslyn
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
roslyn
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
da642999
编写于
5月 04, 2015
作者:
N
Neal Gafter
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Enable EmptyTryFinally with code generated as today, working around
DevDiv 563799.
上级
d61d8fda
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
46 addition
and
39 deletion
+46
-39
src/Compilers/CSharp/Test/Emit/CodeGen/CodeGenTryFinally.cs
src/Compilers/CSharp/Test/Emit/CodeGen/CodeGenTryFinally.cs
+46
-39
未找到文件。
src/Compilers/CSharp/Test/Emit/CodeGen/CodeGenTryFinally.cs
浏览文件 @
da642999
...
...
@@ -8,7 +8,7 @@ namespace Microsoft.CodeAnalysis.CSharp.UnitTests.CodeGen
{
public
class
CodeGenTryFinallyTests
:
CSharpTestBase
{
[
Fact
(
Skip
=
"563799"
)
]
[
Fact
]
public
void
EmptyTryFinally
()
{
var
source
=
...
...
@@ -74,27 +74,30 @@ .maxstack 0
}
IL_0004: ret
}"
);
// the nop below is to work around a verifier bug.
// See DevDiv 563799.
compilation
.
VerifyIL
(
"C.EmptyTryFinallyInFinally"
,
@"{
// Code size
7 (0x7
)
// Code size
8 (0x8
)
.maxstack 0
.try
{
IL_0000: leave.s IL_000
6
IL_0000: leave.s IL_000
7
}
finally
{
IL_0002: nop
.try
{
IL_000
2: leave.s IL_0005
IL_000
3: leave.s IL_0006
}
finally
{
IL_000
4
: endfinally
IL_000
5
: endfinally
}
IL_000
5
: endfinally
IL_000
6
: endfinally
}
IL_000
6: ret
IL_000
7: ret
}"
);
}
...
...
@@ -1997,7 +2000,7 @@ .maxstack 1
}
[
WorkItem
(
540716
,
"DevDiv"
)]
[
Fact
(
Skip
=
"563799"
)
]
[
Fact
]
public
void
ThrowInFinally
()
{
var
source
=
...
...
@@ -2100,28 +2103,31 @@ .maxstack 1
IL_000a: endfinally
}
}"
);
// The nop below is to work around a verifier bug.
// See DevDiv 563799.
compilation
.
VerifyIL
(
"C.ThrowInFinallyInFinally"
,
@"{
// Code size 1
4 (0xe
)
// Code size 1
5 (0xf
)
.maxstack 1
.try
{
IL_0000: leave.s IL_000
c
IL_0000: leave.s IL_000
d
}
finally
{
IL_0002: nop
.try
{
IL_000
2: leave.s IL_000a
IL_000
3: leave.s IL_000b
}
finally
{
IL_000
4
: newobj ""System.Exception..ctor()""
IL_000
9: throw
IL_000
5
: newobj ""System.Exception..ctor()""
IL_000
a: throw
}
IL_000
a: br.s IL_000a
IL_000
b: br.s IL_000b
}
IL_000
c: br.s IL_000c
IL_000
d: br.s IL_000d
}"
);
compilation
.
VerifyIL
(
"D.ThrowInFinally"
,
@"{
...
...
@@ -2148,7 +2154,7 @@ .maxstack 1
}"
);
compilation
.
VerifyIL
(
"D.ThrowInFinallyInTry"
,
@"{
// Code size
18 (0x12
)
// Code size
20 (0x14
)
.maxstack 1
.try
{
...
...
@@ -2158,73 +2164,74 @@ .maxstack 1
{
.try
{
IL_0000: leave.s IL_000
b
IL_0000: leave.s IL_000
5
}
catch object
{
IL_0002: pop
IL_0003: leave.s IL_000
b
IL_0002: pop
IL_0003: leave.s IL_000
5
}
IL_0005: leave.s IL_000d
}
finally
{
IL_000
5
: newobj ""System.Exception..ctor()""
IL_000
a: throw
IL_000
7
: newobj ""System.Exception..ctor()""
IL_000
c: throw
}
IL_000
b: br.s IL_000b
IL_000
d: br.s IL_000d
}
catch object
{
IL_000
d: pop
IL_00
0e: leave.s IL_0011
IL_000
f: pop
IL_00
10: leave.s IL_0013
}
}
finally
{
IL_001
0
: endfinally
IL_001
2
: endfinally
}
IL_001
1: ret
IL_001
3: ret
}"
);
compilation
.
VerifyIL
(
"D.ThrowInFinallyInFinally"
,
@"{
// Code size 2
0 (0x14
)
// Code size 2
1 (0x15
)
.maxstack 1
.try
{
.try
{
IL_0000: leave.s IL_001
2
IL_0000: leave.s IL_001
3
}
catch object
{
IL_0002: pop
IL_0003: leave.s IL_001
2
IL_0002: pop
IL_0003: leave.s IL_001
3
}
}
finally
{
IL_0005: nop
.try
{
.try
{
IL_000
5: leave.s IL_0010
IL_000
6: leave.s IL_0011
}
catch object
{
IL_000
7: pop
IL_000
8: leave.s IL_0010
IL_000
8: pop
IL_000
9: leave.s IL_0011
}
}
finally
{
IL_000
a
: newobj ""System.Exception..ctor()""
IL_00
0f: throw
IL_000
b
: newobj ""System.Exception..ctor()""
IL_00
10: throw
}
IL_001
0: br.s IL_0010
IL_001
1: br.s IL_0011
}
IL_0012: br.s IL_0012
}
"
);
IL_0013: br.s IL_0013
}"
);
}
[
Fact
]
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录