[cfe-commits] r80446 - in /cfe/trunk: lib/AST/DeclCXX.cpp lib/Sema/SemaTemplateInstantiateDecl.cpp test/SemaTemplate/instantiate-member-initializers.cpp
eli.friedman at gmail.com
Tue Sep 1 14:18:15 PDT 2009
On Tue, Sep 1, 2009 at 8:00 AM, Fariborz Jahanian<fjahanian at apple.com> wrote:
> On Aug 31, 2009, at 11:41 PM, Eli Friedman wrote:
>> On Sun, Aug 30, 2009 at 11:15 AM, Fariborz Jahanian<fjahanian at apple.com>
>>> On Aug 29, 2009, at 5:40 PM, Eli Friedman wrote:
>>>> On Sat, Aug 29, 2009 at 5:35 PM, Fariborz Jahanian<fjahanian at apple.com>
>>>> We have to build the node because otherwise, there isn't anywhere in
>>>> the AST for the initializers to live. In the dependent case, yes, we
>>> Of course we need to build the initializer. Focus of the question is when
>>> we have dependent type initializers.
>>>> could skip all analysis; if we did that, though, we would miss a class
>>>> of errors which could be detected earlier, specifically the case where
>>>> a member that requires an initializer doesn't have one.
>>> We don't need to skip the analysis. We just don't build
>>> BaseOrMemberInitializers if
>>> there is even one dependent case.
>> Where exactly are you proposing the initializers should be? As far as
>> I can tell, we don't keep them in any other place in the AST.
> We keep it where it is. We just don't build it when processing templates. We
> build it
> when instantiating templates.
Build what? If we don't build BaseOrMemberInitializers, the
initializers aren't in the AST, gone, forever!
More information about the cfe-commits