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

don hinton via cfe-commits cfe-commits at lists.llvm.org
Wed Mar 16 10:52:14 PDT 2016


-Werror clean is great.

If you could add -Wdeprecated, then we wouldn't need to delete them -- the
warning is only issued with -Wdeprecated is passed.


On Wed, Mar 16, 2016 at 1:49 PM, David Blaikie <dblaikie at gmail.com> wrote:

>
>
> 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/5d6de412/attachment.html>


More information about the cfe-commits mailing list