GCC 5.2リリース 24
ストーリー by headless
修正 部門より
修正 部門より
あるAnonymous Coward 曰く、
7月16日、GCC 5.2がリリースされた。バグの修正が中心のリリースで目立った機能の追加等はないが、修正されたバグの中にはいくつか興味深いものがある(変更点、 OSDN Magazineの記事)。
たとえばBug 36043は、関数呼び出しでサイズが2^nバイトでない構造体を渡した際に、レジスタに展開される場合のアライメント処理に問題があり、SIGSEGVが起きるというものだ。これは実際のデータよりも多めにレジスタに読まれるだけなので、プログラムの動作自体には問題ないはずだ。ただし、管理領域の外のページがレジスタ上にロードされる可能性があり、まともなOSとCPUはこれを検知してSIGSEGVを発行する。この様な基本的なバグがまだ残っていたというのは驚きである。
その他、C++周りでペーストミスとみられるバグが修正されたり、std::nullptr_tのアライメントが変更されたりしている。また、GCCは変数テンプレートとconstexprとODRが組み合わさってリンクエラーが発生する傾向があったが、それについても修正されている。安定的にC++14を使えるのはずいぶん先になりそうである。