[LLVMdev] tblgen bug in handling case , switch_on
Sanjiv Gupta
sanjiv.gupta at microchip.com
Sat Sep 5 12:12:42 PDT 2009
Sanjiv Gupta wrote:
> Hi Mikhail,
>
> What is mentioned in the reference manual is this:
>
> // Evaluates to "cmdline1" if the option "-A" is provided on the
> // command line; to "cmdline2" if "-B" is provided;
> // otherwise to "cmdline3".
>
> (case
> (switch_on "A"), "cmdline1",
> (switch_on "B"), "cmdline2",
> (default), "cmdline3")
>
>
> What is generated is this:
>
> if (A) {
> ...
> }
>
> if (B) {
> ....
> } else {
> ....
> }
>
>
> IMO, What should be generated is below:
>
> if (A) {
> ...
> } else if (B) {
> ....
> } else {
> ....
> }
>
> BTW, to give you more details, I am using append_cmd on each switch_on.
>
>
> - Sanjiv
>
> _______________________________________________
>
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";
- Sanjiv
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
More information about the llvm-dev
mailing list