0

在编译项目结束时,我得到了这个奇怪的编译器错误:

"llvm_transformed_context_ini.c", line 3198: warning: loop not entered at top
"llvm_transformed_context_ini.c", line 3218: warning: loop not entered at top
"llvm_transformed_context_ini.c", line 3237: warning: statement not reached
"llvm_transformed_context_ini.c", line 3248: warning: loop not entered at top
"llvm_transformed_context_ini.c", line 3268: warning: loop not entered at top
"llvm_transformed_context_ini.c", line 3287: warning: statement not reached
op: 2, val: 0
"llvm_transformed_context_ini.c", line 3291: compiler error: wasted space: 1047036660

该行是位于 .c 文件中的最后一行,上面没有任何内容。我试图删除该行,但这并没有解决问题。

* * _17th_september_EDITED 文本:

你可以从这里下载

谁能给我解释一下??

谢谢,

阿米尔

4

1 回答 1

0

不确定它是否有帮助,但您可以尝试删除所有虚拟的“do..while”循环。为此,您应该删除评论中包含短语“.. syntactic loop ..”的所有行。

例如:

  do {     /* Syntactic loop 'bb172' to make GCC happy */ <<-- remove this line
llvm_cbe_bb172:
  llvm_cbe_tmp__425 = *(&llvm_cbe_model_number);
  llvm_cbe_tmp__426 = *(&llvm_cbe_i);
  llvm_cbe_tmp__427 = *(&llvm_cbe_j);
  llvm_cbe_tmp__428 = *(&llvm_cbe_i);
  llvm_cbe_tmp__429 = *(&llvm_cbe_j);
  llvm_cbe_tmp__430 = *(&llvm_cbe_tc);
  llvm_cbe_tmp__431 = *(&llvm_cbe_qp);
  biari_init_context(llvm_cbe_tmp__431, ((&(*((&(*((&llvm_cbe_tmp__430->field7))).array[((signed int )llvm_cbe_tmp__428)]))).array[((signed int )llvm_cbe_tmp__429)])), ((&(*((&(*((&(*((&INIT_ABS_P.array[((signed int )llvm_cbe_tmp__425)]))).array[((signed int )llvm_cbe_tmp__426)]))).array[((signed int )llvm_cbe_tmp__427)]))).array[((signed int )0u)])));
  llvm_cbe_tmp__432 = *(&llvm_cbe_j);
  *(&llvm_cbe_j) = (((unsigned int )(((unsigned int )llvm_cbe_tmp__432) + ((unsigned int )1u))));
  llvm_cbe_tmp__433 = *(&llvm_cbe_j);
  if ((((signed int )llvm_cbe_tmp__433) <= ((signed int )4u))) {
    goto llvm_cbe_bb172;
  } else {
    goto llvm_cbe_bb174;
  }

  } while (1); /* end of syntactic loop 'bb172' */ <<-- remove this line

这段代码中有很多“goto”标签。可能您当前的编译器无法解析 goto 循环。

于 2012-09-17T10:03:25.753 回答