[ruby-core:89106] [Ruby trunk Misc#15136] Fix -Wparentheses warnings

From: jaruga@...
Date: 2018-09-20 09:42:01 UTC
List: ruby-core #89106
Issue #15136 has been updated by jaruga (Jun Aruga).


> I will update and rebase my pull-request for the way.

I updated and rebased my pull-request now!
You can pick up and merge a part of the pull-request, if you like it.


----------------------------------------
Misc #15136: Fix -Wparentheses warnings
https://bugs.ruby-lang.org/issues/15136#change-74124

* Author: jaruga (Jun Aruga)
* Status: Open
* Priority: Normal
* Assignee: 
----------------------------------------
Currently the `-Wno-parentheses` was set.
I assumed if we could fix the warning, we could remove the `-Wno-parentheses`.

I fixed the warnings, because the warning is used as a default on Fedora Project build environment.
I sent pull-request. https://github.com/ruby/ruby/pull/1958

I would show you the explanation of `-Wparentheses`.

```
$ man gcc (or gcc --help --verbose)
...
       -Wparentheses
           Warn if parentheses are omitted in certain contexts, such as when there is an
           assignment in a context where a truth value is expected, or when operators are
           nested whose precedence people often get confused about.

           Also warn if a comparison like "x<=y<=z" appears; this is equivalent to "(x<=y ?
           1 : 0) <= z", which is a different interpretation from that of ordinary
           mathematical notation.

           Also warn for dangerous uses of the GNU extension to "?:" with omitted middle
           operand. When the condition in the "?": operator is a boolean expression, the
           omitted value is always 1.  Often programmers expect it to be a value computed
           inside the conditional expression instead.

           For C++ this also warns for some cases of unnecessary parentheses in
           declarations, which can indicate an attempt at a function call instead of a
           declaration:

                   {
                     // Declares a local variable called mymutex.
                     std::unique_lock<std::mutex> (mymutex);
                     // User meant std::unique_lock<std::mutex> lock (mymutex);
                   }

           This warning is enabled by -Wall.
...
```





---Files--------------------------------
make.log (96.1 KB)


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

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next