rsmith added a comment.
Thanks, this looks good. I think we can make the control flow a little more
obvious by moving the `return true;`s right after we emit each diagnostic, and
that also lets us remove the `goto`.
================
Comment at: lib/Sema/SemaDeclCXX.cpp:11769
@@ +11768,3 @@
+static bool
+isValidLiteralOperatorTemplateParameterList(Sema &SemaRef,
+ FunctionTemplateDecl *TpDecl) {
----------------
If you're going to issue diagnostics from here, it'd be clearer to name this
`checkLiteralOperator[...]`.
================
Comment at: lib/Sema/SemaDeclCXX.cpp:11846
@@ +11845,3 @@
+
+ goto FinishedParams;
+
----------------
Drop this `goto`, we fall through to the same place.
================
Comment at: lib/Sema/SemaDeclCXX.cpp:11886
@@ -11847,10 +11885,3 @@
- // Otherwise it must be a pointer to const; let's strip those qualifiers.
- const PointerType *PT = T->getAs<PointerType>();
- if (!PT)
- goto FinishedParams;
- T = PT->getPointeeType();
- if (!T.isConstQualified() || T.isVolatileQualified())
- goto FinishedParams;
- T = T.getUnqualifiedType();
+ return true;
----------------
Move the `return true;` up into the individual cases that bail out, and remove
the `goto` from the success cases.
http://reviews.llvm.org/D16930
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits