【发布时间】:2012-03-25 10:49:58
【问题描述】:
假设我有以下代码
IF (a.eq.0.or.M(a)) THEN
使用一个整数和 M(1:3) 一个逻辑数组。 如果 a 等于 0,那么我希望第一个测试能够捕获它,而第二个测试永远不会被评估。但是,如果我使用 intel fortran 编译器并使用
进行编译 -check all
然后我遇到了分段错误。没有此调试选项不会发生错误。 这是标准行为吗?对于许多语言,手册中明确指出对于
IF (A.or.B) THEN
如果 A 为真,则不评估 B。 Fortran 标准是否明确要求即使不影响最终结果也可以评估 A 和 B?
【问题讨论】:
-
在使用下标检查的编译器选项时从越界下标中获取分段错误——我将其称为下标检查实现中的错误。
标签: debugging if-statement segmentation-fault fortran