[cfe-dev] Scope::TemplateParamScope?

Dai Mikurube dmikurube at chromium.org
Tue May 22 01:27:38 PDT 2012

Hi cfe-dev,

I'm hacking on Clang and have a trouble about template scope.  Should
'Scope::TemplateParamScope (*1)' be turned on while parsing entire template
declarations, or not?

The description "Template parameter scope starts at the 'template' keyword
and ends when the template declaration ends." (*1) sounds like it should be
true.  I found that the flag is, however, sometimes turned off.  I wonder
if I could know whether it's expected behavior or not.  (If it's not good
behavior, I'm thinking about fixing it.)

Let's think about the following simple template function.

template<typename T>
Object* make(T a) {
  return new Object(&a);

I expected 'TemplateParamScope' is on while parsing the 'new' expression
above.  But, it's actually turned off since the Scope is overwritten in
ParseFunctionDefinition at (*2).

(*1) TemplateParamScope:
(*2) http://clang.llvm.org/doxygen/Parser_8cpp_source.html#l00975

Thanks in advance.

   dmikurube at chromium.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20120522/d8d72033/attachment.html>

More information about the cfe-dev mailing list