From d60a93159ca0d9c525974c5038210ee277f9fdad Mon Sep 17 00:00:00 2001 From: Josef Haider Date: Mon, 24 Feb 2025 16:09:49 +0100 Subject: [PATCH] Stop processing on malformed input in IntrinsicStubProcessor --- .../compiler/lir/processor/IntrinsicStubProcessor.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/compiler/src/jdk.graal.compiler.processor/src/jdk/graal/compiler/lir/processor/IntrinsicStubProcessor.java b/compiler/src/jdk.graal.compiler.processor/src/jdk/graal/compiler/lir/processor/IntrinsicStubProcessor.java index ee3f6b551478..e045a8bc1ce4 100644 --- a/compiler/src/jdk.graal.compiler.processor/src/jdk/graal/compiler/lir/processor/IntrinsicStubProcessor.java +++ b/compiler/src/jdk.graal.compiler.processor/src/jdk/graal/compiler/lir/processor/IntrinsicStubProcessor.java @@ -72,6 +72,7 @@ enum TargetVM { private TypeElement generateStub; private TypeElement generateStubs; private TypeMirror constantNodeParameter; + private boolean malformedInput = false; @Override public Set getSupportedAnnotationTypes() { @@ -182,7 +183,9 @@ protected boolean doProcess(Set annotations, RoundEnviron } classes.add(new GenerateStubClass(source, stubs, minimumFeatureGetters.keySet())); } - createStubs(this, targetVM, (TypeElement) holder, classes); + if (!malformedInput) { + createStubs(this, targetVM, (TypeElement) holder, classes); + } } } return true; @@ -198,6 +201,7 @@ private void extractStubs(TargetVM targetVM, if (getAnnotation(method, nodeIntrinsic.asType()) == null) { String msg = String.format("methods annotated with %s must also be annotated with %s", annotation, nodeIntrinsic); env().getMessager().printMessage(Diagnostic.Kind.ERROR, msg, method, annotation); + malformedInput = true; } RuntimeCheckedFlagsMethod rtc = findRuntimeCheckedFlagsVariant(this, source, method, annotation); for (AnnotationMirror generateStubAnnotationValue : generateStubAnnotations) { @@ -232,6 +236,7 @@ private RuntimeCheckedFlagsMethod findRuntimeCheckedFlagsVariant(AbstractProcess processor.env().getMessager().printMessage(Diagnostic.Kind.ERROR, method + ": Could not find runtime checked flags variant. " + "For every method annotated with @GenerateStub, a second @NodeIntrinsic method with the same signature + an additional @ConstantNodeParameter EnumSet parameter for runtime checked CPU flags is required.", method, annotation); + malformedInput = true; return null; }