0
考慮下面的代碼片段(?):分析錯誤地抱怨一些合法
unichar* foo = (previously allocated);
unichar* bar = reallocf(foo, 0);
當我運行Xcode的分析命令,調用reallocf(),是因爲第二個參數的標記:
「調用'reallocf'的分配大小爲0字節」
但reallocf()的文檔部分說:「如果size [第二個參數]爲零且ptr不爲NULL,則新的最小大小對象被分配並且原始對象被釋放。「所以我對reallocf()的調用應該是完全合法的,不是嗎?
張望了一下谷歌搜索浮出水面此評論附着到LLVM做了一個補丁:
「發出警告的0分配大小reallocf,像realloc的。」
http://llvm.org/viewvc/llvm-project?view=revision&revision=166995
似乎是一個錯誤?