GCC 7.3.0版本編譯http-parser-2.1問題


http-paser是一個用c編寫的http消息解析器,地址:https://github.com/nodejs/http-parser,目前版本2.9

今天用gcc 7.3.0編譯其2.1版本時,編譯器報錯如下:

找到對應的代碼:

 

http-parser的編譯同時打開了-Wall -Wextra -Werror

-Wimplicit-fallthrough,是C++17標准引入的警告選項,因為這個地方沒有break。如果編譯時有編譯選項-Wextra,該編譯選項將添加。-Werror將警告視為錯誤報出。

參考文檔:

https://developers.redhat.com/blog/2017/03/10/wimplicit-fallthrough-in-gcc-7/

具體文檔介紹可參考,man gcc

備注:

最新版本編譯沒有問題,因為代碼改為這樣了

至於為什么改為這樣就不報錯了,因為默認Wimplicit-fallthrough=3的時候,加上/* fall through */是可以繞過的。詳細請見gcc文檔。

話說,直接添加一個下面的處理語句,再break不更好嗎?代碼復用到了極致了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM