<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">2014-06-06 6:59 GMT+04:00 Nikola Smiljanic <span dir="ltr"><<a href="mailto:popizdeh@gmail.com" target="_blank" class="">popizdeh@gmail.com</a>></span>:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div id=":5pr" class="" style="overflow:hidden">Modified: cfe/trunk/lib/Parse/ParseTemplate.cpp<br>


URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseTemplate.cpp?rev=210304&r1=210303&r2=210304&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseTemplate.cpp?rev=<span class="">210304</span>&r1=210303&r2=<span class="">210304</span>&view=diff</a><br>


==============================================================================<br>
--- cfe/trunk/lib/Parse/ParseTemplate.cpp (original)<br>
+++ cfe/trunk/lib/Parse/ParseTemplate.cpp Thu Jun  5 21:58:59 2014<br>
@@ -498,6 +498,11 @@ Decl *Parser::ParseTypeParameter(unsigne<br>
     return nullptr;<br>
   }<br>
<br>
+  // Recover from misplaced ellipsis.<br>
+  bool AlreadyHasEllipsis = EllipsisLoc.isValid();<br>
+  if (TryConsumeToken(tok::ellipsis, EllipsisLoc))<br>
+    DiagnoseMisplacedEllipsis(EllipsisLoc, NameLoc, AlreadyHasEllipsis, true);<br>
+<br>
   // Grab a default argument (if available).<br>
   // Per C++0x [basic.scope.pdecl]p9, we parse the default argument before<br>
   // we introduce the type parameter into the local scope.<br>
@@ -507,9 +512,9 @@ Decl *Parser::ParseTypeParameter(unsigne<br>
     DefaultArg = ParseTypeName(/*Range=*/nullptr,<br>
                                Declarator::TemplateTypeArgContext).get();<br>
<br>
-  return Actions.ActOnTypeParameter(getCurScope(), TypenameKeyword, Ellipsis,<br>
-                                    EllipsisLoc, KeyLoc, ParamName, NameLoc,<br>
-                                    Depth, Position, EqualLoc, DefaultArg);<br>
+  return Actions.ActOnTypeParameter(getCurScope(), TypenameKeyword, EllipsisLoc,<br>
+                                    KeyLoc, ParamName, NameLoc, Depth, Position,<br>
+                                    EqualLoc, DefaultArg);<br>
 }</div></blockquote></div><br>FYI</div><div class="gmail_extra"><div class="gmail_extra">../tools/clang/lib/Parse/ParseTemplate.cpp: In member function ‘clang::Decl* clang::Parser::ParseTypeParameter(unsigned int, unsigned int)’:</div>

<div class="gmail_extra">../tools/clang/lib/Parse/ParseTemplate.cpp:476:8: warning: variable ‘Ellipsis’ set but not used [-Wunused-but-set-variable]</div><div class="gmail_extra">   bool Ellipsis = false;</div><div class="gmail_extra">

        ^</div><div><br></div><div>fixed in r210324.</div></div></div>