Opened 13 years ago

Closed 13 years ago

#3216 closed Bugs (fixed)

variable shadowing with possibly bad implications

Reported by: Arne Juul <arnej@…> Owned by: chris_kohlhoff
Milestone: Boost 1.40.0 Component: asio
Version: Boost 1.39.0 Severity: Problem
Keywords: Cc:

Description

we usually compile our code with -Wshadow using gcc; this usually reports lots of shadowing in the boost headers. Most of this is just annoying noise, but I've found one issue in the file boost_1_39_0/boost/asio/detail/reactive_socket_service.hpp where the name "ec" is used first as a reference parameter and then redeclared and used as a local variable. It seems to me that some of the uses after this point may have intended to save state back in the reference variable, so this code should be carefully reviewed. At the very least, some better variable names should be chosen so it's clear what the intended logic was.

I have a patch that renames both "ec" variables without changing the semantics of the code (attached).

Attachments (2)

ec-rename.patch (3.4 KB ) - added by Arne Juul <arnej@…> 13 years ago.
patch
shadow-patches.txt (62.7 KB ) - added by Arne Juul <arnej@…> 13 years ago.
Here's more patches that just renames variables to make -Wshadow silent.

Download all attachments as: .zip

Change History (5)

by Arne Juul <arnej@…>, 13 years ago

Attachment: ec-rename.patch added

patch

comment:1 by Steven Watanabe, 13 years ago

Component: Noneasio
Owner: set to chris_kohlhoff

by Arne Juul <arnej@…>, 13 years ago

Attachment: shadow-patches.txt added

Here's more patches that just renames variables to make -Wshadow silent.

comment:2 by chris_kohlhoff, 13 years ago

Status: newassigned

Fixed on trunk in changeset [54377].

comment:3 by chris_kohlhoff, 13 years ago

Resolution: fixed
Status: assignedclosed

(In [54499]) Merge from trunk. Fixes #3095, #3216, #3098, #3107, #1341, #2754, #3157, #2620, #2618.

........

r54373 | chris_kohlhoff | 2009-06-26 21:03:14 +1000 (Fri, 26 Jun 2009) | 2 lines

Fix doc generation for array reference parameters.

........

r54376 | chris_kohlhoff | 2009-06-26 23:35:04 +1000 (Fri, 26 Jun 2009) | 2 lines

Fix bug in hash resize. Ref #3095.

........

r54377 | chris_kohlhoff | 2009-06-26 23:55:24 +1000 (Fri, 26 Jun 2009) | 3 lines

Remove a local variable that was hiding the ec parameter and preventing error codes from being correctly propagated. Ref #3216.

........

r54390 | chris_kohlhoff | 2009-06-27 12:17:49 +1000 (Sat, 27 Jun 2009) | 2 lines

Fix failures reported when the tests are built with _GLIBCXX_DEBUG. Ref #3098.

........

r54392 | chris_kohlhoff | 2009-06-27 15:24:16 +1000 (Sat, 27 Jun 2009) | 2 lines

Fix custom memory allocation for timers. Ref #3107.

........

r54393 | chris_kohlhoff | 2009-06-27 17:07:40 +1000 (Sat, 27 Jun 2009) | 2 lines

Fix various g++ warnings. Ref #1341.

........

r54400 | chris_kohlhoff | 2009-06-27 17:52:11 +1000 (Sat, 27 Jun 2009) | 4 lines

Use boost::throw_exception() rather than throw keyword to allow asio to be used when exception support is disabled. Note that the SSL wrappers still require exception support. Refs #2754.

........

r54407 | chris_kohlhoff | 2009-06-27 19:13:24 +1000 (Sat, 27 Jun 2009) | 2 lines

Make links to function overloads more obvious.

........

r54466 | chris_kohlhoff | 2009-06-28 23:07:43 +1000 (Sun, 28 Jun 2009) | 2 lines

Add header file information to reference docs. Refs #3157.

........

r54467 | chris_kohlhoff | 2009-06-28 23:20:17 +1000 (Sun, 28 Jun 2009) | 4 lines

Treat 0-byte reads and writes as no-ops to comply with the documented type requirements for SyncReadStream, AsyncReadStream, SyncWriteStream and AsyncWriteStream.

........

r54498 | chris_kohlhoff | 2009-06-29 19:32:41 +1000 (Mon, 29 Jun 2009) | 2 lines

Add enum values to doc index. Refs #2620.

........

Note: See TracTickets for help on using tickets.