FSP4.5编译RA6M4,编译器优化问题

for循环使用如下代码遍历链表时,发现会被编译器优化成死循环,链表结尾值为null.for (p = n->next, n = p->next; p != 0; p = n, n = p->next)
这段代码即使p=0,也不会退出循环。这是处于什么考虑才这么优化?

Parents
  • Hi SML,

    如果你用的是e2studio的话,是使用的gcc12.2.1的工具链,默认编译优化是-O2,如果你怀疑是编译器优化的问题的话,你可以试着将编译器优化等级从-O2改为-O1或者-O0,看看问题是否还会复现。

    NP_Renesas

Reply
  • Hi SML,

    如果你用的是e2studio的话,是使用的gcc12.2.1的工具链,默认编译优化是-O2,如果你怀疑是编译器优化的问题的话,你可以试着将编译器优化等级从-O2改为-O1或者-O0,看看问题是否还会复现。

    NP_Renesas

Children