[PATCH] D18123: Fix implicit copy ctor and copy assignment operator warnings when -Wdeprecated passed.

David Blaikie via cfe-commits cfe-commits at lists.llvm.org
Wed Mar 16 10:49:14 PDT 2016


On Wed, Mar 16, 2016 at 10:19 AM, don hinton <hintonda at gmail.com> wrote:

> The current behavior, albeit deprecated, is to implicitly define these.
> Therefore, it would be incorrect not to delete them if the implicit
> versions don't do the right thing.
>
> I'd be happy to add a FIXME, but I doubt they will ever be removed.  At
> best, they'd be #ifdef'd away for some future compiler that no longer
> implicitly defines them.
>
> Just not sure it's worth it.  Deleting them will be valid no matter what
> the future holds.
>

Sure, but it's a lot of extra deletes (if you search the mailing list for
"author: dblaikie" and "deprecated" you'll find many other instances I
cleaned up, in which we'd have to explicitly delete these ops if that's
going to be our approach)

I don't think we'd only ifdef them away. Keeping the clang build -Werror
clean is a pretty well established bar, so if anyone accidentally
introduced a call to any of these, we'd find/fix it pretty quickly as we do
other errors/mistakes, even when they're not hard language-required errors.


>
> On Wed, Mar 16, 2016 at 12:56 PM, David Blaikie <dblaikie at gmail.com>
> wrote:
>
>>
>>
>> On Wed, Mar 16, 2016 at 7:54 AM, don hinton via cfe-commits <
>> cfe-commits at lists.llvm.org> wrote:
>>
>>> hintonda updated this revision to Diff 50823.
>>> hintonda added a comment.
>>>
>>> Address FIXME now that Sema::LookupInlineAsmField() has been fixed.
>>>
>>>
>>> http://reviews.llvm.org/D18123
>>>
>>> Files:
>>>   include/clang/AST/UnresolvedSet.h
>>>   include/clang/Sema/Lookup.h
>>>
>>> Index: include/clang/Sema/Lookup.h
>>> ===================================================================
>>> --- include/clang/Sema/Lookup.h
>>> +++ include/clang/Sema/Lookup.h
>>> @@ -185,6 +185,9 @@
>>>        Shadowed(false)
>>>    {}
>>>
>>> +  LookupResult(const LookupResult &) = delete;
>>> +  LookupResult & operator=(const LookupResult &) = delete;
>>>
>>
>> Not sure how much to bother explicitly deleting ops like this if
>> eventually the -Wdeprecated warning will just catch it that way. Maybe
>> leave a "FIXME: Remove these once the warning for deprecated copy ops is
>> enabled"?
>>
>>
>>> +
>>>    ~LookupResult() {
>>>      if (Diagnose) diagnose();
>>>      if (Paths) deletePaths(Paths);
>>> Index: include/clang/AST/UnresolvedSet.h
>>> ===================================================================
>>> --- include/clang/AST/UnresolvedSet.h
>>> +++ include/clang/AST/UnresolvedSet.h
>>> @@ -59,8 +59,11 @@
>>>    // UnresolvedSet.
>>>  private:
>>>    template <unsigned N> friend class UnresolvedSet;
>>> -  UnresolvedSetImpl() {}
>>> -  UnresolvedSetImpl(const UnresolvedSetImpl &) {}
>>> +  UnresolvedSetImpl() = default;
>>> +  UnresolvedSetImpl(const UnresolvedSetImpl &) = default;
>>> +  UnresolvedSetImpl(UnresolvedSetImpl &&) = default;
>>> +  UnresolvedSetImpl& operator=(const UnresolvedSetImpl &) = default;
>>> +  UnresolvedSetImpl& operator=(UnresolvedSetImpl &&) = default;
>>>
>>>  public:
>>>    // We don't currently support assignment through this iterator, so we
>>> might
>>>
>>>
>>>
>>> _______________________________________________
>>> cfe-commits mailing list
>>> cfe-commits at lists.llvm.org
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160316/8e276eea/attachment.html>


More information about the cfe-commits mailing list