This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/67906] Missing warning about std::move without effect
- From: "egall at gwmail dot gwu.edu" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 24 Aug 2017 19:57:57 +0000
- Subject: [Bug c++/67906] Missing warning about std::move without effect
- Auto-submitted: auto-generated
- References: <bug-67906-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67906
--- Comment #6 from Eric Gallager <egall at gwmail dot gwu.edu> ---
On 8/24/17, Mykola Orliuk <virkony@gmail.com> wrote:
> Hello
>
> Sure,
>
> struct Value {
> Value();
> Value(const Value&);
> Value(Value&&);
> };
>
> struct Frame {
> Value value; // previously mutable
> };
>
> Frame top;
> const Frame& x = top;
> Value y = std::move(x.value);
>
>
> https://godbolt.org/g/v24FfQ
>
> Thank you for looking into it. Yes, there should be better names than
> -Wno-effect. Maybe -Wignored-move and -Wmove-const are slightly better.
>
> Such warning will help to identify places which become ineffecient after
> changing constness of something.
>
> P.S. By some reason I were not able to leave comment in Bugzilla and got
> message "User account creation filtered due to spam." though I were logged
> in.
>
No, your comment still went through, 3 times in fact. The "User
account creation filtered due to spam" message is pinned to the top
for display to everyone; it doesn't actually mean that anything is
wrong with your account.
> Thank you,
> Mykola
>
> On Thu, Aug 24, 2017 at 7:40 AM egallager at gcc dot gnu.org <
> gcc-bugzilla@gcc.gnu.org> wrote:
>
>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67906
>>
>> Eric Gallager <egallager at gcc dot gnu.org> changed:
>>
>> What |Removed |Added
>>
>> ----------------------------------------------------------------------------
>> Keywords| |diagnostic
>> Status|UNCONFIRMED |WAITING
>> Last reconfirmed| |2017-08-24
>> CC| |egallager at gcc dot
>> gnu.org
>> Ever confirmed|0 |1
>>
>> --- Comment #1 from Eric Gallager <egallager at gcc dot gnu.org> ---
>> Could you please provide a complete self-contained example? The snippet
>> you
>> posted looks like it's missing some declarations:
>>
>> $ /usr/local/bin/g++ -c 67906.cc
>> 67906.cc:1:7: error: ‘Frame’ does not name a type
>> const Frame& x = stack.top();
>> ^~~~~
>> 67906.cc:2:1: error: ‘Value’ does not name a type
>> Value y = std::move(x.value); // x.value - non-mutable
>> ^~~~~
>> $
>>
>> Anyways, bug 81159 is related, but that's about a different misuse of
>> std::move, so I'll keep the 2 separate.
>>
>> Oh, and also "-Wno-effect" would probably be a bad name for the option,
>> since
>> "-Wno-" is reserved for negative versions of warnings. i.e., is
>> "-Wno-effect"
>> the negative of "-Weffect"? That seems wrong. Or is it already in the
>> positive,
>> in which case the negative is "-Wno-no-effect"? That would seem
>> redundant.
>>
>> --
>> You are receiving this mail because:
>> You reported the bug.
>