erichkeane marked 17 inline comments as done.
erichkeane added a comment.

Patch incoming,  Thank you very much for the review @aaron.ballman



================
Comment at: include/clang/Basic/DiagnosticSemaKinds.td:9333-9335
+  "multiversion function would have identical mangling to a previous "
+  "definition.  Duplicate declarations must have identical target attribute "
+  "values">;
----------------
aaron.ballman wrote:
> Diagnostics are not complete sentences, so this should be reworded to be even 
> less grammatically correct. ;-)
I tried again, hopefully this one is better? :)  Let me know if my grammar is 
still too good...


================
Comment at: include/clang/Basic/DiagnosticSemaKinds.td:9339-9340
+def err_multiversion_no_other_attrs : Error<
+  "attribute 'target' multiversioning cannot be combined with other "
+  "attributes">;
+def err_multiversion_diff : Error<
----------------
aaron.ballman wrote:
> This worries me slightly. Is there a benefit to prohibiting this attribute 
> with any other attribute? For instance, I'm thinking about a multiversioned 
> noreturn function or a multiversioned function with a calling convention as 
> plausible use cases.
This attribute can have negative effects if combined with certain others, 
though I don't have a complete list.  GCC seems to 'ignore' a handful of 
others, but I don't have the complete list.  It is my intent to disallow all 
others in this patch, and upon request/further work, permit them as an opt-in.  


================
Comment at: lib/Sema/SemaDecl.cpp:9448
+  if (NewFD->isMain()) {
+    if (NewTA && NewTA->getFeaturesStr() == "default") {
+      S.Diag(NewFD->getLocation(), diag::err_multiversion_not_allowed_on_main);
----------------
aaron.ballman wrote:
> So any other form of target attribute and feature string is fine to place on 
> `main()`?
It IS, it just doesn't cause multiversioning.  The "return false" at the bottom 
of this condition returns to CheckFunctionDeclaration.  


https://reviews.llvm.org/D40819



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

Reply via email to