LLVM为什么我在llc-print after=stack protector中什么也得不到?

LLVM为什么我在llc-print after=stack protector中什么也得不到?,llvm,llvm-clang,llvm-ir,Llvm,Llvm Clang,Llvm Ir,我也有同样的问题 我跟着火车走 llc-print before=stack protector hello.bc 但是什么都没有 -print-before-all工作正常,但输出中没有堆栈保护程序 我使用了clang-emit llvm-S-fstack protector hello.c-o hello.bc,将生成堆栈保护器。所以通行证有效,但为什么不能打印 llvm版本:4.0并没有真正的答案,但我认为问题在于,只有当堆栈保护程序通过其他方式打开时,才会添加它。也就是说,它在llc

我也有同样的问题

我跟着火车走

llc-print before=stack protector hello.bc
但是什么都没有

-print-before-all
工作正常,但输出中没有堆栈保护程序

我使用了
clang-emit llvm-S-fstack protector hello.c-o hello.bc
,将生成堆栈保护器。所以通行证有效,但为什么不能打印


llvm版本:4.0

并没有真正的答案,但我认为问题在于,只有当堆栈保护程序通过其他方式打开时,才会添加它。也就是说,它在llc中不作为独立选项提供。您需要向llc添加一个开关,以使其被添加。有很多选择,但我现在没有时间讨论细节。@ZalmanStern这是一个很好的建议,但我已经检查了llc的输出是否有堆栈保护器。llc的输入,即hello.bc,带有stack protector标签。所以我认为这不是问题所在。谢谢大家,所有这些都是可能的。堆栈保护器传递已经在您输入llc的.bc上运行。您也检查过了吗?如果该通行证未显示在所有运行通行证的列表中,则表明该通行证未在llc的运行中被调用,这是一个好迹象。@ZalmanStern我不确定您所说的在.bc上运行是指什么。在输入中,即.bc仅包含每个功能的
ssp
标记,但没有用于堆栈保护器的IRs。在llc之后,IRs被生成,并最终在s中组装。当我使用叮当声时,我尝试了使用和不使用
-fstack-protector
。llc也不起作用。我真的没有答案,但我认为问题是,只有当堆栈保护器通过其他方式打开时,才会添加堆栈保护器。也就是说,它在llc中不作为独立选项提供。您需要向llc添加一个开关,以使其被添加。有很多选择,但我现在没有时间讨论细节。@ZalmanStern这是一个很好的建议,但我已经检查了llc的输出是否有堆栈保护器。llc的输入,即hello.bc,带有stack protector标签。所以我认为这不是问题所在。谢谢大家,所有这些都是可能的。堆栈保护器传递已经在您输入llc的.bc上运行。您也检查过了吗?如果该通行证未显示在所有运行通行证的列表中,则表明该通行证未在llc的运行中被调用,这是一个好迹象。@ZalmanStern我不确定您所说的在.bc上运行是指什么。在输入中,即.bc仅包含每个功能的
ssp
标记,但没有用于堆栈保护器的IRs。在llc之后,IRs被生成,并最终在s中组装。当我使用叮当声时,我尝试了使用和不使用
-fstack-protector
。有限责任公司也不起作用。