rsmith added inline comments.

================
Comment at: lib/Parse/ParseTemplate.cpp:151-153
@@ -149,1 +150,5 @@
 
+  if (isSpecialization)
+    TemplateParmScopePtr->setFlags(TemplateParmScopePtr->getFlags() ^
+                                   Scope::TemplateParamScope);
+
----------------
Use `ParseScopeFlags` to change the flags here rather than calling `setFlags` 
directly. Please also use `getFlags() & ~Scope::TemplateParamScope` rather than 
`^` to make it more obvious that you're clearing the flag not just flipping it.

================
Comment at: lib/Sema/SemaLambda.cpp:818
@@ -817,3 +817,3 @@
   if (Scope *TmplScope = CurScope->getTemplateParamParent())
-    if (!TmplScope->decl_empty())
+    if (TmplScope->isTemplateParamScope())
       KnownDependent = true;
----------------
This should not be necessary. It looks like `Scope::setFlags` fails to update 
`TemplateParamParent` (etc) if the relevant flag changes. Instead of adding 
this `if`, try changing the body of `Scope::setFlags` to call `Init(AnyParent, 
F);`.


http://reviews.llvm.org/D19175



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to