diff --git a/src/main/java/pascal/taie/analysis/graph/callgraph/CHABuilder.java b/src/main/java/pascal/taie/analysis/graph/callgraph/CHABuilder.java index e78a94e2d..f6d8189ab 100644 --- a/src/main/java/pascal/taie/analysis/graph/callgraph/CHABuilder.java +++ b/src/main/java/pascal/taie/analysis/graph/callgraph/CHABuilder.java @@ -164,7 +164,11 @@ private Set resolveCalleesOf(Invoke callSite) { } yield callees.size() <= calleeLimit ? callees : Set.of(); } - case SPECIAL, STATIC -> Set.of(callSite.getMethodRef().resolve()); + case SPECIAL, STATIC -> { + JMethod callee = CallGraphs.resolveCallee(null, callSite); + if (callee!= null) yield Set.of(callee); + else yield Set.of(); + } case DYNAMIC -> { logger.debug("CHA cannot resolve invokedynamic {}", callSite); yield Set.of();