Thanks!

================
Comment at: lib/Sema/SemaTemplateInstantiate.cpp:2230
@@ +2229,3 @@
+
+  LocalInstantiationScope Scope(*this, /*MergeWithParentScope*/true);
+
----------------
rsmith wrote:
> `MergeWithParentScope` should be `false` here; there's not necessarily any 
> connection between whatever we were instantiating before and this scope.
OK.

================
Comment at: lib/Sema/SemaTemplateInstantiate.cpp:2246
@@ +2245,3 @@
+
+  return Init == nullptr;
+}
----------------
rsmith wrote:
> You currently return `false` even when 
> `ActOnFinishCXXInClassMemberInitializer` fails; you should probably either 
> return `true` in that case or remove your return value and check for whether 
> there actually is an in-class initialzer in the caller afterwards.
I think the Instantiate* methods should all return consistent error codes, so 
I'd like to keep this. I can do `return 
!Instantiation->getInClassInitializer()`, though, since that is the error case.

Should I be marking the Instantiation FieldDecl invalid if instantiation fails? 
Otherwise the next time we hit a constructor I think we'll try to 
reinstantiate. I'll handle this in a followup commit if you think this is 
better.

http://reviews.llvm.org/D5690



_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to