<div dir="ltr">When I compile this sample:<br><div><br></div><div><div><font face="monospace">int main()</font></div><div><font face="monospace">{</font></div><div><font face="monospace">    int a = 5;</font></div><div><font face="monospace">    int b = 6;</font></div><div><font face="monospace">    [[own::myattr(RED)]]</font></div><div><font face="monospace">    auto j5 = 2*a ;</font></div><div><font face="monospace">    return 0;</font></div><div><font face="monospace">}</font></div></div><div><br></div><div>I have the following message:</div><div><br></div><div><div><font face="monospace">$ clang++ test03.cpp  -std=c++11 -Xclang -ast-dump -fsyntax-only</font></div><div><b><font face="monospace">test03.cpp:7:19: error: use of undeclared identifier 'RED'</font></b></div><div><b><font face="monospace">    [[own::myattr(RED)]]</font></b></div><div><font face="monospace">                  ^</font></div></div><div>Using: </div><div><div><font face="monospace">def OWNMyattr : Attr {</font></div><div><font face="monospace">  let Spellings = [CXX11<"own", "myattr">];</font></div><div><font face="monospace">  let Args = [VariadicEnumArgument<"Color", "ColorType",</font></div><div><font face="monospace">                           ["RED", "BLUE","GREEN"],</font></div><div><font face="monospace">                           ["RED", "BLUE","GREEN"]>];</font></div><div><font face="monospace">  let Documentation = [Undocumented];</font></div><div><font face="monospace">}</font></div></div><div><br></div><div>However if I use <b>"RED</b>" instead <b>RED</b>, It compiles. </div><div><br></div><div><br></div><div><div><font face="monospace">$clang++ test03.cpp  -std=c++11 -Xclang -ast-dump -fsyntax-only</font></div><div><font face="monospace">TranslationUnitDecl 0x864a240 <<invalid sloc>> <invalid sloc></font></div><div><font face="monospace">|-TypedefDecl 0x864a780 <<invalid sloc>> <invalid sloc> implicit __int128_t '__int128'</font></div><div><font face="monospace">|-TypedefDecl 0x864a7e0 <<invalid sloc>> <invalid sloc> implicit __uint128_t 'unsigned __int128'</font></div><div><font face="monospace">|-TypedefDecl 0x864aba0 <<invalid sloc>> <invalid sloc> implicit __builtin_va_list '__va_list_tag [1]'</font></div><div><font face="monospace">`-FunctionDecl 0x864ac40 <test03.cpp:3:1, line:10:1> line:3:5 main 'int (void)'</font></div><div><font face="monospace">  `-CompoundStmt 0x868e2c8 <line:4:1, line:10:1></font></div><div><font face="monospace">    |-DeclStmt 0x864adc8 <line:5:5, col:14></font></div><div><font face="monospace">    | `-VarDecl 0x864ad50 <col:5, col:13> col:9 used a 'int' cinit</font></div><div><font face="monospace">    |   `-IntegerLiteral 0x864ada8 <col:13> 'int' 5</font></div><div><font face="monospace">    |-DeclStmt 0x864ae68 <line:6:5, col:14></font></div><div><font face="monospace">    | `-VarDecl 0x864adf0 <col:5, col:13> col:9 b 'int' cinit</font></div><div><font face="monospace">    |   `-IntegerLiteral 0x864ae48 <col:13> 'int' 6</font></div><div><font face="monospace">    |-DeclStmt 0x868e270 <line:8:5, col:19></font></div><div><font face="monospace">    | `-VarDecl 0x868e080 <col:5, col:17> col:10 j5 'int':'int' cinit</font></div><div><font face="monospace">    |   |-BinaryOperator 0x868e188 <col:15, col:17> 'int' '*'</font></div><div><font face="monospace">    |   | |-IntegerLiteral 0x868e128 <col:15> 'int' 2</font></div><div><font face="monospace">    |   | `-ImplicitCastExpr 0x868e170 <col:17> 'int' <LValueToRValue></font></div><div><font face="monospace">    |   |   `-DeclRefExpr 0x868e148 <col:17> 'int' lvalue Var 0x864ad50 'a' 'int'</font></div><div><font face="monospace">    |   <b>`-OWNMyattrAttr 0x868e0e0 <line:7:7, col:24></b></font></div><div><font face="monospace">    `-ReturnStmt 0x868e2a8 <line:9:5, col:12></font></div><div><font face="monospace">      `-IntegerLiteral 0x868e288 <col:12> 'int' 0</font></div></div><div><br></div><div><br></div><div>Regards,</div><div>Luis.</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2014-12-19 16:10 GMT+01:00 Aaron Ballman <span dir="ltr"><<a href="mailto:aaron@aaronballman.com" target="_blank">aaron@aaronballman.com</a>></span>:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Fri, Dec 19, 2014 at 7:09 AM, LUIS MIGUEL SANCHEZ GARCIA<br>
<<a href="mailto:lmsanche@inf.uc3m.es">lmsanche@inf.uc3m.es</a>> wrote:<br>
> It is something like that:<br>
><br>
> file: include/clang/Basic/Attr.td<br>
><br>
> def OWNmyattr : Attr {<br>
>   let Spellings = [CXX11<"own", "myattr">];<br>
>   let Args = [VariadicEnumArgument<"Color", "ColorType",<br>
>                            ["RED", "BLUE","GREEN"],<br>
>                            ["RED", "BLUE","GREEN"]>];<br>
>   let Documentation = [Undocumented];<br>
> }<br>
<br>
</span>That definition looks reasonable to me; what problems are you running into?<br>
<div class="HOEnZb"><div class="h5"><br>
~Aaron<br>
><br>
><br>
><br>
><br>
> Thanks,<br>
><br>
> Regards,<br>
> Luis.<br>
><br>
> 2014-12-18 22:19 GMT+01:00 Aaron Ballman <<a href="mailto:aaron@aaronballman.com">aaron@aaronballman.com</a>>:<br>
>><br>
>> On Thu, Dec 18, 2014 at 4:48 AM, LUIS MIGUEL SANCHEZ GARCIA<br>
>> <<a href="mailto:luismiguel.sanchez@uc3m.es">luismiguel.sanchez@uc3m.es</a>> wrote:<br>
>> > I tried to include a variadic parameter into a c++11 attribute:<br>
>> ><br>
>> > Example:<br>
>> ><br>
>> > int main(){<br>
>> > ....<br>
>> > [[my::ownattr(RED, BLUE)]]<br>
>> > f();<br>
>> > ....<br>
>> > }<br>
>> ><br>
>> ><br>
>> ><br>
>> > being A and B values of an enumerate like:<br>
>> > enum class Color {RED, GREEN, BLUE};<br>
>> ><br>
>> > Any help?<br>
>><br>
>> What does your attribute's table definition look like? What problems<br>
>> are you running into?<br>
>><br>
>> ~Aaron<br>
><br>
><br>
><br>
> --<br>
> --<br>
> --<br>
> --------------------------------------------------<br>
> Luis Miguel Sánchez García<br>
> Computer Architecture and Technology Area.<br>
> Office 2.2.B08<br>
> Computer Science Department. UNIVERSIDAD CARLOS III DE MADRID<br>
> Universidad Carlos III de Madrid<br>
> Avda. de la Universidad, 30<br>
> 28911 Leganés - Madrid - Spain<br>
> e-mail: <a href="mailto:lmsan@arcos.inf.uc3m.es">lmsan@arcos.inf.uc3m.es</a><br>
>         <a href="mailto:luismiguel.sanchez@uc3m.es">luismiguel.sanchez@uc3m.es</a><br>
><br>
> Phone: (+34) 91 624 5951<br>
><br>
> Linked-In: <a href="http://es.linkedin.com/in/lmsan" target="_blank">http://es.linkedin.com/in/lmsan</a><br>
> Twitter: <a href="http://twitter.com/lmsanchezgarcia" target="_blank">http://twitter.com/lmsanchezgarcia</a><br>
> --------------------------------------------------<br>
</div></div></blockquote></div><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><span style="font-size:small;font-family:arial">-- </span><br style="font-size:small;font-family:arial"><span style="font-size:small;font-family:arial">-- </span><br style="font-size:small;font-family:arial"><span style="font-size:small;font-family:arial">--------------------------------------------------</span><br style="font-size:small;font-family:arial"><span style="font-size:small;font-family:arial">Luis Miguel Sánchez García</span><br style="font-size:small;font-family:arial"><span style="font-size:small;font-family:arial;border-collapse:collapse">Computer Architecture and Technology Area.</span><div style="font-size:small;font-family:arial">Office 2.2.B08<br><div>Computer Science Department. UNIVERSIDAD CARLOS III DE MADRID<br>Universidad Carlos III de Madrid<br>Avda. de la Universidad, 30<br>28911 Leganés - Madrid - Spain<br>e-mail: <a href="mailto:lmsan@arcos.inf.uc3m.es" style="color:rgb(17,85,204)" target="_blank">lmsan@arcos.inf.uc3m.es</a><br>        <a href="mailto:luismiguel.sanchez@uc3m.es" style="color:rgb(17,85,204)" target="_blank">luismiguel.sanchez@uc3m.es</a><br><br></div><div>Phone: (+34) 91 624 5951<br><div> <br>Linked-In: <a href="http://es.linkedin.com/in/lmsan" style="color:rgb(17,85,204)" target="_blank">http://es.linkedin.com/in/lmsan</a><br>Twitter: <a href="http://twitter.com/lmsanchezgarcia" style="color:rgb(17,85,204)" target="_blank">http://twitter.com/lmsanchezgarcia</a><br>--------------------------------------------------</div></div></div></div></div></div>
</div>