Project

General

Profile

Feature #12336

Use -std=gnu99 instead of -std=c99 for GCC

Added by naruse (Yui NARUSE) almost 3 years ago. Updated almost 3 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-dev:49605]

Description

r36038以降、Ruby本体をビルドする際にはGCCに-stdオプションを与えており、
若干の変更を経て現在では-std=iso9899:1999 (-std=c99相当)を指定しています。

しかしこの指定の場合、GCCのC標準関数の代わりにビルトイン関数を用いる最適化が行われないため、
現在ちょっと残念な状態が続いています。
https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html

また、これの導入のきっかけはおそらくr36029の

  • compile.c (iseq_set_sequence): nonstatic initializer of an aggregate type is a C99ism.
  • compile.c (enum compile_array_type_t): comma at the end of enum list is a C99ism.

だと思うのですが、すでにc99相当なのであんまり効いてない……かな?
もっともやりがちなMixed Declarationsは別に-Wdeclaration-after-statementがあるのでそれはそれで問題ありません。
https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html
https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html

現在だと、-std=gnu99でおおむね同レベルの警告を維持できると同時に、
GCCのビルトイン関数を使えるようになってわずかな手間でちょっと早くなって嬉しいと思うのですがいかがでしょう。

Associated revisions

Revision 03cbafcf
Added by naruse (Yui NARUSE) almost 3 years ago

  • configure.in (warnflags): use -std=gnu99 instead of -std=iso9899:1999. [Feature #12336]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54895 b2dd03c8-39d4-4d8f-98ff-823fe69b080e

Revision 54895
Added by naruse (Yui NARUSE) almost 3 years ago

  • configure.in (warnflags): use -std=gnu99 instead of -std=iso9899:1999. [Feature #12336]

Revision 54895
Added by naruse (Yui NARUSE) almost 3 years ago

  • configure.in (warnflags): use -std=gnu99 instead of -std=iso9899:1999. [Feature #12336]

Revision 54895
Added by naruse (Yui NARUSE) almost 3 years ago

  • configure.in (warnflags): use -std=gnu99 instead of -std=iso9899:1999. [Feature #12336]

Revision 54895
Added by naruse (Yui NARUSE) almost 3 years ago

  • configure.in (warnflags): use -std=gnu99 instead of -std=iso9899:1999. [Feature #12336]

History

#1

Updated by naruse (Yui NARUSE) almost 3 years ago

  • Status changed from Open to Closed

Applied in changeset r54895.


  • configure.in (warnflags): use -std=gnu99 instead of -std=iso9899:1999. [Feature #12336]

Also available in: Atom PDF