Skip to content

clang3.2 CFG 条件语句的结节分配改变 #11

@wolf5x

Description

@wolf5x
if(a || (b && c)) {
    //...
}

在3.1中的流图与3.2中不同。
3.2中统一将bool条件分支中的条件跳转放进CFGTerminator,如3.2中关于&&表达示的CFGBlock形如:

[B1]
1. b
T [B1.1] && ...

而3.1中是将1和T拆分成2个CFGBlock的:

[B1]
1. b
[B2]
T [B1.1] && ...

因此3.2中的缩点处理应当修改。

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions