【问题标题】:Classify static_cast and dynamic_cast in the IR Code在 IR Code 中对 static_cast 和 dynamic_cast 进行分类
【发布时间】:2015-12-20 16:03:04
【问题描述】:

我有一个问题..

在LLVM的IR层面,有没有办法区分static_cast和dynamic_cast?

如果是,如何使用IR级别的命令进行检查?

我知道,在clang级别中,已经存在一些方法,如下所示。 -http://clang.llvm.org/doxygen/classclang_1_1CXXNamedCastExpr.html

你能给我一个有价值的指南吗?

非常感谢:)

【问题讨论】:

    标签: clang llvm llvm-ir dynamic-cast static-cast


    【解决方案1】:

    没有。 LLVM IR 不代表 static_cast、dynamic_cast 或任何此类 C++ 源代码级构造。即使是特定于 ABI 的提示也可能并不总是存在,例如 Itanium 在某些情况下不会发出对运行时函数的调用。

    【讨论】:

    • So.. 有什么方法可以区分 static_cast 和 dynamic_cast 吗?我应该只在 clang 级别做某事吗?
    • 您可以做出有根据的猜测,但它永远不会 100% 准确。如果您需要了解源 C++ 代码的语义,您必须处理 Clang,而不是 LLVM。
    • 好的,我明白了,谢谢你的评论 :)
    猜你喜欢
    • 2011-01-16
    • 1970-01-01
    • 2011-06-06
    • 1970-01-01
    • 1970-01-01
    • 2010-11-18
    • 2014-05-29
    • 1970-01-01
    • 2010-09-24
    相关资源
    最近更新 更多