ruby-core@ruby-lang.org archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-core:103040] [Ruby master Feature#17752] Enable -Wundef for C extensions in repository
@ 2021-03-26 17:04 eregontp
  2021-03-27  3:25 ` [ruby-core:103050] " xtkoba+ruby
                   ` (21 more replies)
  0 siblings, 22 replies; 23+ messages in thread
From: eregontp @ 2021-03-26 17:04 UTC (permalink / raw)
  To: ruby-core

Issue #17752 has been reported by Eregon (Benoit Daloze).

----------------------------------------
Feature #17752: Enable -Wundef for C extensions in repository
https://bugs.ruby-lang.org/issues/17752

* Author: Eregon (Benoit Daloze)
* Status: Open
* Priority: Normal
----------------------------------------
I would like to enable `-Wundef` for C extensions built/bundled with CRuby.

From https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
> -Wundef
>    Warn if an undefined identifier is evaluated in an #if directive. Such identifiers are replaced with zero.

I found this warning to be quite useful, notably when investigating why a given C extension did not include some code I expected, and then building those extensions on TruffleRuby.

There are a couple places not respecting this currently but they seem trivial to fix, I can do that.

For instance a confusing case is:
https://github.com/ruby/ruby/blob/9143d21b1bf2f16b1e847d569a588510726d8860/ext/nkf/nkf-utf8/nkf.h#L19
```
#if DEFAULT_NEWLINE == 0x0D0A
```
which without -Wundef would just exclude the code without any warning if DEFAULT_NEWLINE is not defined.

I'm not sure if we should/can enable it for C extensions in general (installed as gems), as if a C extensions uses -Werror and would have such a warning it would no longer build.

I can make a PR for this.
I'm not sure where to add -Wundef though, should it be in https://github.com/ruby/ruby/blob/9143d21b1bf2f16b1e847d569a588510726d8860/configure.ac#L620, or maybe in mkmf.rb?



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2021-05-05 12:38 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-26 17:04 [ruby-core:103040] [Ruby master Feature#17752] Enable -Wundef for C extensions in repository eregontp
2021-03-27  3:25 ` [ruby-core:103050] " xtkoba+ruby
2021-03-27 11:43 ` [ruby-core:103059] " eregontp
2021-03-27 12:25 ` [ruby-core:103060] " xtkoba+ruby
2021-03-27 12:48 ` [ruby-core:103061] " eregontp
2021-03-29  4:49 ` [ruby-core:103079] " shyouhei
2021-04-07  1:11 ` [ruby-core:103262] " xtkoba+ruby
2021-04-07 12:40 ` [ruby-core:103268] " xtkoba+ruby
2021-04-09  1:32 ` [ruby-core:103326] " shyouhei
2021-04-09  9:04 ` [ruby-core:103339] " shyouhei
2021-04-13 12:50 ` [ruby-core:103425] " eregontp
2021-04-14  1:00 ` [ruby-core:103444] " xtkoba+ruby
2021-04-29 13:27 ` [ruby-core:103656] " eregontp
2021-04-29 13:39 ` [ruby-core:103657] " xtkoba+ruby
2021-05-04 22:56 ` [ruby-core:103717] " mame
2021-05-04 22:58 ` [ruby-core:103718] " mame
2021-05-04 23:41 ` [ruby-core:103720] " xtkoba+ruby
2021-05-05  0:57 ` [ruby-core:103721] " eregontp
2021-05-05  1:20 ` [ruby-core:103723] " xtkoba+ruby
2021-05-05  3:57 ` [ruby-core:103728] " xtkoba+ruby
2021-05-05  4:09 ` [ruby-core:103729] " mame
2021-05-05 11:56 ` [ruby-core:103733] " eregontp
2021-05-05 12:38 ` [ruby-core:103737] " mame

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).