铿锵静态分析仪可以与返回状态约定混淆吗?

时间:2012-08-23 21:27:55

标签: xcode compiler-errors llvm clang unzip

来自:https://github.com/cocos2d/cocos2d-x/blob/gles20/cocos2dx/support/zip_support/unzip.cpp

unzip.cpp和unzip.h看起来古老而稳定,但我得到了以下LLVM SA逻辑错误:

cocos2dx/support/zip_support/unzip.cpp
cocos2dx/support/zip_support/unzip.cpp:1186:5: Assigned value is garbage or undefined
cocos2dx/support/zip_support/unzip.cpp:796:12: Calling 'unzOpenInternal'
cocos2dx/support/zip_support/unzip.cpp:585:1: Entered call from 'unzOpen'
cocos2dx/support/zip_support/unzip.cpp:687:13: Assuming 'central_pos' is not equal to 0
cocos2dx/support/zip_support/unzip.cpp:697:13: Calling 'unz64local_getLong'
cocos2dx/support/zip_support/unzip.cpp:267:1: Entered call from 'unzOpenInternal'
cocos2dx/support/zip_support/unzip.cpp:275:11: Calling 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:213:1: Entered call from 'unz64local_getLong'
cocos2dx/support/zip_support/unzip.cpp:217:9: Assuming 'err' is not equal to 1
cocos2dx/support/zip_support/unzip.cpp:275:11: Returning from 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:279:15: Calling 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:213:1: Entered call from 'unz64local_getLong'
cocos2dx/support/zip_support/unzip.cpp:217:9: Assuming 'err' is not equal to 1
cocos2dx/support/zip_support/unzip.cpp:279:15: Returning from 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:283:15: Calling 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:213:1: Entered call from 'unz64local_getLong'
cocos2dx/support/zip_support/unzip.cpp:217:9: Assuming 'err' is not equal to 1
cocos2dx/support/zip_support/unzip.cpp:283:15: Returning from 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:287:15: Calling 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:213:1: Entered call from 'unz64local_getLong'
cocos2dx/support/zip_support/unzip.cpp:217:9: Assuming 'err' is not equal to 1
cocos2dx/support/zip_support/unzip.cpp:287:15: Returning from 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:697:13: Returning from 'unz64local_getLong'
cocos2dx/support/zip_support/unzip.cpp:701:13: Calling 'unz64local_getShort'
cocos2dx/support/zip_support/unzip.cpp:240:1: Entered call from 'unzOpenInternal'
cocos2dx/support/zip_support/unzip.cpp:248:11: Calling 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:213:1: Entered call from 'unz64local_getShort'
cocos2dx/support/zip_support/unzip.cpp:217:9: Assuming 'err' is not equal to 1
cocos2dx/support/zip_support/unzip.cpp:248:11: Returning from 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:252:15: Calling 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:213:1: Entered call from 'unz64local_getShort'
cocos2dx/support/zip_support/unzip.cpp:217:9: Assuming 'err' is not equal to 1
cocos2dx/support/zip_support/unzip.cpp:252:15: Returning from 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:701:13: Returning from 'unz64local_getShort'
cocos2dx/support/zip_support/unzip.cpp:705:13: Calling 'unz64local_getShort'
cocos2dx/support/zip_support/unzip.cpp:240:1: Entered call from 'unzOpenInternal'
cocos2dx/support/zip_support/unzip.cpp:248:11: Calling 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:213:1: Entered call from 'unz64local_getShort'
cocos2dx/support/zip_support/unzip.cpp:217:9: Assuming 'err' is not equal to 1
cocos2dx/support/zip_support/unzip.cpp:248:11: Returning from 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:252:15: Calling 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:213:1: Entered call from 'unz64local_getShort'
cocos2dx/support/zip_support/unzip.cpp:217:9: Assuming 'err' is not equal to 1
cocos2dx/support/zip_support/unzip.cpp:252:15: Returning from 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:705:13: Returning from 'unz64local_getShort'
cocos2dx/support/zip_support/unzip.cpp:709:13: Calling 'unz64local_getShort'
cocos2dx/support/zip_support/unzip.cpp:240:1: Entered call from 'unzOpenInternal'
cocos2dx/support/zip_support/unzip.cpp:248:11: Calling 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:213:1: Entered call from 'unz64local_getShort'
cocos2dx/support/zip_support/unzip.cpp:217:9: Assuming 'err' is not equal to 1
cocos2dx/support/zip_support/unzip.cpp:248:11: Returning from 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:252:15: Calling 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:213:1: Entered call from 'unz64local_getShort'
cocos2dx/support/zip_support/unzip.cpp:217:9: Assuming 'err' is not equal to 1
cocos2dx/support/zip_support/unzip.cpp:252:15: Returning from 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:709:13: Returning from 'unz64local_getShort'
cocos2dx/support/zip_support/unzip.cpp:714:13: Calling 'unz64local_getShort'
cocos2dx/support/zip_support/unzip.cpp:240:1: Entered call from 'unzOpenInternal'
cocos2dx/support/zip_support/unzip.cpp:248:11: Calling 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:213:1: Entered call from 'unz64local_getShort'
cocos2dx/support/zip_support/unzip.cpp:217:9: Assuming 'err' is equal to 1
cocos2dx/support/zip_support/unzip.cpp:248:11: Returning from 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:252:15: Calling 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:213:1: Entered call from 'unz64local_getShort'
cocos2dx/support/zip_support/unzip.cpp:217:9: Assuming 'err' is equal to 1
cocos2dx/support/zip_support/unzip.cpp:252:15: Returning from 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:714:13: Returning from 'unz64local_getShort'
cocos2dx/support/zip_support/unzip.cpp:724:13: Calling 'unz64local_getLong'
cocos2dx/support/zip_support/unzip.cpp:267:1: Entered call from 'unzOpenInternal'
cocos2dx/support/zip_support/unzip.cpp:275:11: Calling 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:213:1: Entered call from 'unz64local_getLong'
cocos2dx/support/zip_support/unzip.cpp:217:9: Assuming 'err' is equal to 1
cocos2dx/support/zip_support/unzip.cpp:275:11: Returning from 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:279:15: Calling 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:213:1: Entered call from 'unz64local_getLong'
cocos2dx/support/zip_support/unzip.cpp:217:9: Assuming 'err' is equal to 1
cocos2dx/support/zip_support/unzip.cpp:279:15: Returning from 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:283:15: Calling 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:213:1: Entered call from 'unz64local_getLong'
cocos2dx/support/zip_support/unzip.cpp:217:9: Assuming 'err' is equal to 1
cocos2dx/support/zip_support/unzip.cpp:283:15: Returning from 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:287:15: Calling 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:213:1: Entered call from 'unz64local_getLong'
cocos2dx/support/zip_support/unzip.cpp:217:9: Assuming 'err' is equal to 1
cocos2dx/support/zip_support/unzip.cpp:287:15: Returning from 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:724:13: Returning from 'unz64local_getLong'
cocos2dx/support/zip_support/unzip.cpp:730:13: Calling 'unz64local_getLong'
cocos2dx/support/zip_support/unzip.cpp:267:1: Entered call from 'unzOpenInternal'
cocos2dx/support/zip_support/unzip.cpp:275:11: Calling 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:213:1: Entered call from 'unz64local_getLong'
cocos2dx/support/zip_support/unzip.cpp:217:9: Assuming 'err' is equal to 1
cocos2dx/support/zip_support/unzip.cpp:275:11: Returning from 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:279:15: Calling 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:213:1: Entered call from 'unz64local_getLong'
cocos2dx/support/zip_support/unzip.cpp:217:9: Assuming 'err' is equal to 1
cocos2dx/support/zip_support/unzip.cpp:279:15: Returning from 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:283:15: Calling 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:213:1: Entered call from 'unz64local_getLong'
cocos2dx/support/zip_support/unzip.cpp:217:9: Assuming 'err' is equal to 1
cocos2dx/support/zip_support/unzip.cpp:283:15: Returning from 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:287:15: Calling 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:213:1: Entered call from 'unz64local_getLong'
cocos2dx/support/zip_support/unzip.cpp:217:9: Assuming 'err' is equal to 1
cocos2dx/support/zip_support/unzip.cpp:287:15: Returning from 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:730:13: Returning from 'unz64local_getLong'
cocos2dx/support/zip_support/unzip.cpp:735:13: Calling 'unz64local_getShort'
cocos2dx/support/zip_support/unzip.cpp:240:1: Entered call from 'unzOpenInternal'
cocos2dx/support/zip_support/unzip.cpp:248:11: Calling 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:213:1: Entered call from 'unz64local_getShort'
cocos2dx/support/zip_support/unzip.cpp:217:9: Assuming 'err' is equal to 1
cocos2dx/support/zip_support/unzip.cpp:248:11: Returning from 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:252:15: Calling 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:213:1: Entered call from 'unz64local_getShort'
cocos2dx/support/zip_support/unzip.cpp:217:9: Assuming 'err' is equal to 1
cocos2dx/support/zip_support/unzip.cpp:252:15: Returning from 'unz64local_getByte'
cocos2dx/support/zip_support/unzip.cpp:735:13: Returning from 'unz64local_getShort'
cocos2dx/support/zip_support/unzip.cpp:760:9: Calling 'unzGoToFirstFile'
cocos2dx/support/zip_support/unzip.cpp:1179:1: Entered call from 'unzOpenInternal'
cocos2dx/support/zip_support/unzip.cpp:1186:5: Assigned value is garbage or undefined

1 个答案:

答案 0 :(得分:0)

看起来它在调用之前被unzOpenInternal中的struct赋值混淆了。不确定后续转换为unzFile并在另一个函数中强制转换对它有多大影响。

由于代码似乎正确,您可能需要向clang组和/或Apple提交错误报告。