Modify

Opened 8 years ago

Closed 8 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@…> 8 years ago.
patch
shadow-patches.txt (62.7 KB) - added by Arne Juul <arnej@…> 8 years ago.
Here's more patches that just renames variables to make -Wshadow silent.

Download all attachments as: .zip

Change History (5)

Changed 8 years ago by Arne Juul <arnej@…>

Attachment: ec-rename.patch added

patch

comment:1 Changed 8 years ago by Steven Watanabe

Component: Noneasio
Owner: set to chris_kohlhoff

Changed 8 years ago by Arne Juul <arnej@…>

Attachment: shadow-patches.txt added

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

comment:2 Changed 8 years ago by chris_kohlhoff

Status: newassigned

Fixed on trunk in changeset [54377].

comment:3 Changed 8 years ago by chris_kohlhoff

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.

........

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain chris_kohlhoff.
The resolution will be deleted.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.