LGTM with minor changes.
================
Comment at: lib/Sema/SemaDeclAttr.cpp:3474-3475
@@ +3473,4 @@
+
+ assert(!E->isValueDependent() &&
+ "Can't have value-dependent expression at this point.");
+
----------------
There's no fundamental reason why value dependence must always imply
instantiation dependence (and there are cases that should probably be modelled
as being value-dependent but not instantiation-dependent, per discussion in the
C++ committee, but we don't do so yet). Please also check for value-dependence
when you check for instantiation-dependence.
================
Comment at: lib/Sema/SemaDeclAttr.cpp:3507
@@ +3506,3 @@
+
+ // Save dependent expressions in the AST to be instantiated.
+ D->addAttr(::new (Context) CUDALaunchBoundsAttr(
----------------
This comment seems out-of-place since it applies to dependent and non-dependent
cases.
================
Comment at: lib/Sema/SemaTemplateInstantiateDecl.cpp:213
@@ +212,3 @@
+
+ Expr *MaxThreads, *MinBlocks = nullptr;
+ ExprResult Result = S.SubstExpr(Attr.getMaxThreads(), TemplateArgs);
----------------
This declaration, while correct, looks suspicious because only the second
variable is initialized. Maybe declare `MaxThreads` below at the point where
you assign to it, and declare `MinBlocks` immediately before the `if
(Attr.getMinBlocks())` line?
================
Comment at: lib/Sema/SemaTemplateInstantiateDecl.cpp:267
@@ -236,2 +266,3 @@
+ }
// Existing DLL attribute on the instantiation takes precedence.
if (TmplAttr->getKind() == attr::DLLExport ||
----------------
Add a newline between these, please.
http://reviews.llvm.org/D8985
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits