[ 
https://issues.apache.org/jira/browse/GROOVY-11359?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17837936#comment-17837936
 ] 

Eric Milles commented on GROOVY-11359:
--------------------------------------

jdb brings back some memories. If you can attach, then set a breakpoint in 
AsmClassGenerator visitStdMethod. When you get to the method that was created 
by the transform, you want to step through the visitReturnStatement and so on. 
Keep an eye on the OperandStack. After each method call and the constructor 
call there should be only the return types on the stack. 

> ASTTransformation cause "General error during instruction selection"
> --------------------------------------------------------------------
>
>                 Key: GROOVY-11359
>                 URL: https://issues.apache.org/jira/browse/GROOVY-11359
>             Project: Groovy
>          Issue Type: Bug
>          Components: Compiler
>    Affects Versions: 3.0.21
>         Environment: $ java -fullversion
> openjdk full version "17.0.10+7"
> $ uname -a
> Linux auoHome 6.6.26-1-MANJARO #1 SMP PREEMPT_DYNAMIC Wed Apr 10 20:11:08 UTC 
> 2024 x86_64 GNU/Linux
>            Reporter: Adrien Guichard
>            Priority: Major
>             Fix For: 3.0.11
>
>         Attachments: testcase-asttransform-ko.tar.gz
>
>
> When assembling the *Grails* project, I do obtain the following stacktrace:
>  java.lang.ArrayIndexOutOfBoundsException: size==0
> at 
> org.codehaus.groovy.classgen.asm.OperandStack.ensureStackNotEmpty(OperandStack.java:279)
> at 
> org.codehaus.groovy.classgen.asm.OperandStack.replace(OperandStack.java:271)
> at 
> org.codehaus.groovy.classgen.AsmClassGenerator.visitCastExpression(AsmClassGenerator.java:815)
> at org.codehaus.groovy.ast.expr.CastExpression.visit(CastExpression.java:90)
> at 
> org.codehaus.groovy.classgen.asm.StatementWriter.writeReturn(StatementWriter.java:615)
> [. . .]
> Tell me if you need a more complete stacktrace. I try to work around this 
> bug, changing the AST, without success. The error looks the same {*}each 
> time{*}.
> To reproduce:
> $ tar xvfz testcase-asttransform-ko.tar.gz
> $ cd groovyInfra
> $ ./gradlew publishMavenPublicationToMavenLocal
> $ cd ..
> $ cd t620g
> $ ./gradlew assemble
> => BROKEN HERE
> Thanks for your help !



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to