[cfe-dev] FunctionDecls by typedef crash the C++ front-end
Argiris Kirtzidis
akyrtzi at gmail.com
Fri Oct 24 10:06:45 PDT 2008
Added a bug report for keeping track:
http://llvm.org/bugs/show_bug.cgi?id=2942
Doug Gregor wrote:
> On Fri, Oct 24, 2008 at 12:10 AM, Argiris Kirtzidis <akyrtzi at gmail.com> wrote:
>
>> Chris Lattner wrote:
>>
>>> Two options here. The best is probably for the C++ front-end to create
>>> the parm var decls in this case, to be consistent with "void f(int);". The
>>> typedef shouldn't affect the AST generated other than the pretty type.
>>>
>> If the C++ front-end could be changed to handle the no-parmvardecl case, it
>> would also work in the case that not producing them is common.
>>
>
> Yes.
>
>
>> In general I think there should be some convention, whether they are
>> produced or not should be the same for both front-ends. Producing them for
>> C++ and not for C is more confusing.
>>
>
> I think Argiris is voicing an important principle here: regardless of
> what dialect we're parsing, we should produce ASTs of the same form.
> Having the ParmVarDecls or not shouldn't be a C-vs-C++ decision, but
> there could be a function-definition-vs-non-function-definition
> decision. Sometimes the same syntax has different interpretations in
> different dialects---"void f();" in C vs. C++, for example---but the
> notion of a function "f" with no prototype or of a function f" that
> accepts no arguments and has a void return type is always the same in
> the AST.
>
> - Doug
>
>
More information about the cfe-dev
mailing list