This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 2/2] PR debug/63240 Add DWARF representation for C++11 defaulted member function.


On Fri, Oct 3, 2014 at 10:13 AM, Siva Chandra <sivachandra@google.com> wrote:
> On Fri, Oct 3, 2014 at 7:17 AM, Jason Merrill <jason@redhat.com> wrote:
>> On 10/03/2014 09:12 AM, Mark Wielaard wrote:
>>>
>>> A debugger not knowing whether a special member function was explicitly
>>> defaulted, implicitly declared or explicitly defined seems less confusion
>>> than not knowing whether it was deleted. But there are some subtle cases
>>> where knowing whether a constructor was user defined or explicitly
>>> defaulted do matter for whether the default constructor might have been
>>> implicitly generated.
>>
>>
>> Can you elaborate?
>>
>>> So like the deleted case this patch introduces
>>> a new attribute DW_AT_GNU_defaulted that gets attached to the function
>>> declaration. Note that since this is for declarations we explicitly
>>> test for DECL_DEFAULTED_IN_CLASS_P and ignore any implementation
>>> definitions that use = default; outside the class body.
>>
>>
>> Hmm, I'm dubious about this choice.  How do you expect a consumer to use
>> this information?
>
> I apologize for gate crashing here...
>
> Currently, there is no special attribute to indicate that a special
> member function is declared = default. So, if you have a class
> definition like this:
>
> class A
> {
> public:
>   A () {}
>   ~A () = default;
>   int a;
> };
>
> then, GDB sees the declaration of the destructor with no special
> attributes (like DW_AT_artificial or similar) and thinks that the copy
> constructor is user defined.

Aww, sorry. I should have said destructor instead of copy constructor.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]