[LLVMdev] tblgen bug in handling case , switch_on

Mikhail Glushenkov the.dead.shall.rise at gmail.com
Sat Sep 5 13:32:12 PDT 2009


Hi,

On Sat, Sep 5, 2009 at 9:12 PM, Sanjiv Gupta<sanjiv.gupta at microchip.com> wrote:
> Is the patch below ok?
>
> Index: LLVMCConfigurationEmitter.cpp
> ===================================================================
> --- LLVMCConfigurationEmitter.cpp    (revision 80668)
> +++ LLVMCConfigurationEmitter.cpp    (working copy)
> @@ -1141,6 +1141,7 @@
>                               Callback, EmitElseIf, OptDescs, O);
>    }
>    else {
> +      EmitElseIf = true;
>      Callback(arg, (std::string(IndentLevel) + Indent1).c_str(), O);
>    }
>    O << IndentLevel << "}\n";

No, this is not OK - EmitCaseConstructHandler is supposed to be able
to generate both 'if (...) ... if (...) ... if (...) ...' and 'if
(...) ... else if (...) ... else ...' forms. That's what the
EmitElseIf argument controls.

BTW, the example in the documentation generates the 'if (...) ... else
if (...) ... else ...'  form since the 'case' there is assumed to be
inside the 'cmd_line' property.

Can you provide a small TableGen code example of what you're trying to
do which is not working?

-- 
()  ascii ribbon campaign - against html e-mail
/\  www.asciiribbon.org   - against proprietary attachments




More information about the llvm-dev mailing list