jextract cannot parse enum with '-x c++' clang options
Tornai András
tornaiandrasede at gmail.com
Fri Oct 23 14:25:22 UTC 2020
Hello,
I executed jextract against the following .h
enum fruit {apple, banana};
by running
jextract --source -C --verbose -C -x -C c++ pbug2.h
Unfortunately it fails with a StackOverflowError[1]. Without the extra "-C
-x -C c++" clang params it works well. Nevertheless, I think the thing
should work in both cases.
The .h file, the executed commands and the output are attached.
Regards,
András
[1] Exception in thread "main" java.lang.AssertionError:
java.lang.IllegalStateException: java.lang.StackOverflowError
at
jdk.incubator.jextract/jdk.internal.clang.libclang.Index_h.clang_visitChildren(Index_h.java:4206)
at
jdk.incubator.jextract/jdk.internal.clang.Cursor$CursorChildren.get(Cursor.java:348)
at
jdk.incubator.jextract/jdk.internal.clang.Cursor.children(Cursor.java:357)
at
jdk.incubator.jextract/jdk.internal.jextract.impl.TreeMaker.createScoped(TreeMaker.java:187)
at
jdk.incubator.jextract/jdk.internal.jextract.impl.TreeMaker.createTreeInternal(TreeMaker.java:88)
at
jdk.incubator.jextract/jdk.internal.jextract.impl.TreeMaker.createTree(TreeMaker.java:81)
at
jdk.incubator.jextract/jdk.internal.jextract.impl.TypeMaker.makeTypeInternal(TypeMaker.java:197)
at
jdk.incubator.jextract/jdk.internal.jextract.impl.TypeMaker.makeType(TypeMaker.java:102)
at
jdk.incubator.jextract/jdk.internal.jextract.impl.TreeMaker.createEnumConstant(TreeMaker.java:179)
at
jdk.incubator.jextract/jdk.internal.jextract.impl.TreeMaker.createTreeInternal(TreeMaker.java:90)
at
jdk.incubator.jextract/jdk.internal.jextract.impl.TreeMaker.createTree(TreeMaker.java:81)
at
java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
at
java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
at
java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at
java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at
java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
at
java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at
java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:675)
at
jdk.incubator.jextract/jdk.internal.jextract.impl.TreeMaker.createScoped(TreeMaker.java:188)
at
jdk.incubator.jextract/jdk.internal.jextract.impl.TreeMaker.createTreeInternal(TreeMaker.java:88)
...
-------------- next part --------------
enum fruit {apple, banana};
-------------- next part --------------
java --version
jextract --source -C --verbose -C -x -C c++ pbug2.h
More information about the panama-dev
mailing list