C语言|无法在循环中声明变量,固执的Linux之父终于决定升级C语言版本

晓查 发自 凹非寺
量子位 | 公众号 QbitAI
还在使用89年版C语言的Linux内核,现在终于要做出改变了。
今天,Linux开源社区宣布,未来会把内核C语言版本升级到C11,预计5.18版之后生效,也就是今年5月。
C语言|无法在循环中声明变量,固执的Linux之父终于决定升级C语言版本
文章插图
这个决定很突然,从发起问题到官方声明,不过才一个星期,要知道说服固执的Linux之父 Linus Torvalds可不是件容易的事。
C语言|无法在循环中声明变量,固执的Linux之父终于决定升级C语言版本】事情的原因,说起来还有那么一点偶然的因素。
一个bug的连锁反应问题的起源是来自上周的一次Linux社区讨论。
一位名叫Jakob Koschel的博士生,在研究阻止与内核链表primitive相关的预测执行漏洞时,发现了这样一个问题。
Linux内核广泛使用由struct list_head定义的双向链表: