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

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

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

找到對應的代碼:github

 

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

-Wimplicit-fallthrough,是C++17標準引入的警告選項,由於這個地方沒有break。若是編譯時有編譯選項-Wextra,該編譯選項將添加。-Werror將警告視爲錯誤報出。ci

參考文檔:文檔

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

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

備註:編譯

最新版本編譯沒有問題,由於代碼改成這樣了ejs

至於爲何改成這樣就不報錯了,由於默認Wimplicit-fallthrough=3的時候,加上/* fall through */是能夠繞過的。詳細請見gcc文檔。

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

相關文章
相關標籤/搜索