diff --git a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/c/codegen/CCompilerInvoker.java b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/c/codegen/CCompilerInvoker.java index 78885712ca6e..1bd81580cdc8 100644 --- a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/c/codegen/CCompilerInvoker.java +++ b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/c/codegen/CCompilerInvoker.java @@ -37,6 +37,7 @@ import java.util.Optional; import java.util.Scanner; import java.util.function.Consumer; +import java.util.regex.Pattern; import java.util.stream.Collectors; import org.graalvm.nativeimage.ImageSingletons; @@ -237,6 +238,14 @@ protected CompilerInfo createCompilerInfo(Path compilerPath, Scanner scanner) { return new CompilerInfo(compilerPath, "intel", "Intel(R) C++ Compiler", "icc", major, minor0, minor1, "x86_64"); } + if (scanner.findInLine(Pattern.quote("Intel(R) oneAPI DPC++/C++ Compiler ")) != null) { + scanner.useDelimiter("[. ]"); + int major = scanner.nextInt(); + int minor0 = scanner.nextInt(); + int minor1 = scanner.nextInt(); + return new CompilerInfo(compilerPath, "intel", "Intel(R) oneAPI DPC++/C++ Compiler", "icx", major, minor0, minor1, "x86_64"); + } + if (scanner.findInLine("clang version ") != null) { scanner.useDelimiter("[. -]"); int major = scanner.nextInt();