[cfe-dev] Omitted declaration

Abramo Bagnara abramo.bagnara at gmail.com
Sat Jun 12 00:45:41 PDT 2010


Il 12/06/2010 03:58, John McCall ha scritto:
> 
> On Jun 9, 2010, at 12:52 AM, Abramo Bagnara wrote:
> 
>> Il 05/06/2010 18:44, Abramo Bagnara ha scritto:
>>> Il 29/05/2010 18:31, Douglas Gregor ha scritto:
>>>>
>>>> On May 29, 2010, at 1:02 AM, Abramo Bagnara wrote:
>>>>
>>>>> template <typename T>
>>>>> struct S {
>>>>> };
>>>>>
>>>>> // S<int> v;
>>>>>
>>>>> template struct S<int>;
>>>>>
>>>>> Uncommenting the line above the ClassTemplateSpecializationDecl related
>>>>> to the last line disappears from declarations available inside
>>>>> TranslationUnitDecl.
>>>>>
>>>>> I don't think it's expected, right?
>>>>
>>>>
>>>> It's expected (because it was written that way), but it's still a bug. Sema::ActOnExplicitInstantiation intentionally reuses existing ClassTemplateSpecializationDecl nodes from implicit instantiations, rather than always creating a new node. However, when we re-use such a node, we don't insert it into lexical context. It should be relatively easy to fix.
>>>>
>>>
>>> Unfortunately not so easy... we have found this code rather mess...
>>> complex ;-)
>>>
>>> However I've attached the patch for your review/approval.
>>
>> Sorry to annoy you, but we have other patches to submit and, you know,
>> patches life outside current svn tree is a bit... dangerous.
> 
> This looks okay to me.

Commited in r105880.



More information about the cfe-dev mailing list