Modify

Ticket #3216 (closed Bugs: fixed)

Opened 5 years ago

Last modified 5 years ago

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

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

Change History

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

patch

comment:1 Changed 5 years ago by steven_watanabe

  • Owner set to chris_kohlhoff
  • Component changed from None to asio

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

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

comment:2 Changed 5 years ago by chris_kohlhoff

  • Status changed from new to assigned

Fixed on trunk in changeset [54377].

comment:3 Changed 5 years ago by chris_kohlhoff

  • Status changed from assigned to closed
  • Resolution set to fixed

(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.

........

View

Add a comment

Modify Ticket

Change Properties
<Author field>
Action
as closed
The resolution will be deleted. Next status will be 'reopened'
Author


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

 
Note: See TracTickets for help on using tickets.