https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69415
Bug ID: 69415
Summary: -Wmisleading-indentation warns on "if (__b < __a)
return __b; return __a;"
Product: gcc
Version: 6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: dmalcolm at gcc dot gnu.org
Target Milestone: ---
This Debian bug report for "resiprocate":
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=812005
has:
> In file included from ../rutil/Data.hxx:13:0,
> from ../rutil/Log.hxx:4,
> from ../rutil/SysLogBuf.hxx:12,
> from SysLogStream.cxx:1:
> ../rutil/compat.hxx: In function 'const _Tp& resip::resipMin(const _Tp&,
> const _Tp&)':
> ../rutil/compat.hxx:187:31: warning: statement is indented as if it were
> guarded by... [-Wmisleading-indentation]
> if (__b < __a) return __b; return __a;
> ^~~~~~
>
> ../rutil/compat.hxx:187:4: note: ...this 'if' clause, but it is not
> if (__b < __a) return __b; return __a;
> ^~
The code in question is:
if (__b < __a) return __b; return __a;
(I wasn't able to locate it within https://github.com/resiprocate/resiprocate )
Arguably this conditional could use an "else", but this construct appears to be
present in an old version of our STL implemenation, at least e.g.:
https://gcc.gnu.org/ml/libstdc++/2003-02/txt00002.txt
How common is this construct?
Should we warn about it?