Clang-16 frontend crashes

Hi, there’s currently a bug in the clang-16 frontend which makes our code none-compilable.

This has resulted in sonarcloud crashing on analyzing our code base ever since this update https://sonarsource.atlassian.net/browse/CPP-3845?jql=project%20%3D%2010166%20AND%20fixVersion%3D14067%20ORDER%20BY%20priority%20DESC%2C%20key%20ASC:

Example of the error:

ERROR: Exception in thread pool-4-thread-14
com.sonar.cpp.analyzer.Analyzer$AnalyzerException: Exit code 139: /opt/actions-runner/_work/EPEXcpp/EPEXcpp/EPEX/src/balance_price/tennet_balance_price_logger.cpp
	at com.sonar.cpp.analyzer.AnalysisHandler.acceptResult(AnalysisHandler.java:67)
	at com.sonar.cpp.analyzer.Subprocess.execute(Subprocess.java:128)
	at com.sonar.cpp.plugin.CFamilySensor.lambda$process$34(CFamilySensor.java:1328)
	at com.sonar.cpp.analyzer.AnalysisExecutor.lambda$submit$0(AnalysisExecutor.java:58)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)

ERROR: Exception in thread pool-4-thread-13
com.sonar.cpp.analyzer.Analyzer$AnalyzerException: Exit code 139: /opt/actions-runner/_work/EPEXcpp/EPEXcpp/EPEX/src/balance_price/elia_balance_price_logger.cpp
	at com.sonar.cpp.analyzer.AnalysisHandler.acceptResult(AnalysisHandler.java:67)
	at com.sonar.cpp.analyzer.Subprocess.execute(Subprocess.java:128)
	at com.sonar.cpp.plugin.CFamilySensor.lambda$process$34(CFamilySensor.java:1328)
	at com.sonar.cpp.analyzer.AnalysisExecutor.lambda$submit$0(AnalysisExecutor.java:58)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)

ERROR: Exception in thread pool-4-thread-4
com.sonar.cpp.analyzer.Analyzer$AnalyzerException: Exit code 139: /opt/actions-runner/_work/EPEXcpp/EPEXcpp/datasets/src/dataset.cpp
	at com.sonar.cpp.analyzer.AnalysisHandler.acceptResult(AnalysisHandler.java:67)
	at com.sonar.cpp.analyzer.Subprocess.execute(Subprocess.java:128)
	at com.sonar.cpp.plugin.CFamilySensor.lambda$process$34(CFamilySensor.java:1328)
	at com.sonar.cpp.analyzer.AnalysisExecutor.lambda$submit$0(AnalysisExecutor.java:58)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)

ERROR: Exception in thread pool-4-thread-12
com.sonar.cpp.analyzer.Analyzer$AnalyzerException: Exit code 139: /opt/actions-runner/_work/EPEXcpp/EPEXcpp/EPEX/src/atc_table.cpp
	at com.sonar.cpp.analyzer.AnalysisHandler.acceptResult(AnalysisHandler.java:67)
	at com.sonar.cpp.analyzer.Subprocess.execute(Subprocess.java:128)
	at com.sonar.cpp.plugin.CFamilySensor.lambda$process$34(CFamilySensor.java:1328)
	at com.sonar.cpp.analyzer.AnalysisExecutor.lambda$submit$0(AnalysisExecutor.java:58)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)

ERROR: Exception in thread pool-4-thread-22
com.sonar.cpp.analyzer.Analyzer$AnalyzerException: Exit code 139: /opt/actions-runner/_work/EPEXcpp/EPEXcpp/EPEX/src/epex_broker/messages/hub_to_hub_ntf.cpp
	at com.sonar.cpp.analyzer.AnalysisHandler.acceptResult(AnalysisHandler.java:67)
	at com.sonar.cpp.analyzer.Subprocess.execute(Subprocess.java:128)
	at com.sonar.cpp.plugin.CFamilySensor.lambda$process$34(CFamilySensor.java:1328)
	at com.sonar.cpp.analyzer.AnalysisExecutor.lambda$submit$0(AnalysisExecutor.java:58)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)

ERROR: Exception in thread pool-4-thread-28
com.sonar.cpp.analyzer.Analyzer$AnalyzerException: Exit code 139: /opt/actions-runner/_work/EPEXcpp/EPEXcpp/EPEX/src/epex_broker/messages/order_execution_report.cpp
	at com.sonar.cpp.analyzer.AnalysisHandler.acceptResult(AnalysisHandler.java:67)
	at com.sonar.cpp.analyzer.Subprocess.execute(Subprocess.java:128)
	at com.sonar.cpp.plugin.CFamilySensor.lambda$process$34(CFamilySensor.java:1328)
	at com.sonar.cpp.analyzer.AnalysisExecutor.lambda$submit$0(AnalysisExecutor.java:58)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)

ERROR: Exception in thread pool-4-thread-10
com.sonar.cpp.analyzer.Analyzer$AnalyzerException: Exit code 139: /opt/actions-runner/_work/EPEXcpp/EPEXcpp/EPEX/src/rabbit/trader_init.cpp
	at com.sonar.cpp.analyzer.AnalysisHandler.acceptResult(AnalysisHandler.java:67)
	at com.sonar.cpp.analyzer.Subprocess.execute(Subprocess.java:128)
	at com.sonar.cpp.plugin.CFamilySensor.lambda$process$34(CFamilySensor.java:1328)
	at com.sonar.cpp.analyzer.AnalysisExecutor.lambda$submit$0(AnalysisExecutor.java:58)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)

ERROR: Exception in thread pool-4-thread-17
com.sonar.cpp.analyzer.Analyzer$AnalyzerException: Exit code 139: /opt/actions-runner/_work/EPEXcpp/EPEXcpp/EPEX/src/epex_broker/epex_broker.cpp
	at com.sonar.cpp.analyzer.AnalysisHandler.acceptResult(AnalysisHandler.java:67)
	at com.sonar.cpp.analyzer.Subprocess.execute(Subprocess.java:128)
	at com.sonar.cpp.plugin.CFamilySensor.lambda$process$34(CFamilySensor.java:1328)
	at com.sonar.cpp.analyzer.AnalysisExecutor.lambda$submit$0(AnalysisExecutor.java:58)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)

ERROR: Exception in thread pool-4-thread-23
com.sonar.cpp.analyzer.Analyzer$AnalyzerException: Exit code 139: /opt/actions-runner/_work/EPEXcpp/EPEXcpp/EPEX/src/epex_broker/messages/hub_to_hub_response.cpp
	at com.sonar.cpp.analyzer.AnalysisHandler.acceptResult(AnalysisHandler.java:67)
	at com.sonar.cpp.analyzer.Subprocess.execute(Subprocess.java:128)
	at com.sonar.cpp.plugin.CFamilySensor.lambda$process$34(CFamilySensor.java:1328)
	at com.sonar.cpp.analyzer.AnalysisExecutor.lambda$submit$0(AnalysisExecutor.java:58)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)

ERROR: Exception in thread pool-4-thread-18
com.sonar.cpp.analyzer.Analyzer$AnalyzerException: Exit code 139: /opt/actions-runner/_work/EPEXcpp/EPEXcpp/EPEX/src/epex_broker/messages/broadcast.cpp
	at com.sonar.cpp.analyzer.AnalysisHandler.acceptResult(AnalysisHandler.java:67)
	at com.sonar.cpp.analyzer.Subprocess.execute(Subprocess.java:128)
	at com.sonar.cpp.plugin.CFamilySensor.lambda$process$34(CFamilySensor.java:1328)
	at com.sonar.cpp.analyzer.AnalysisExecutor.lambda$submit$0(AnalysisExecutor.java:58)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)

ERROR: Exception in thread pool-4-thread-5
com.sonar.cpp.analyzer.Analyzer$AnalyzerException: Exit code 139: /opt/actions-runner/_work/EPEXcpp/EPEXcpp/datasets/src/dataset_types.cpp
	at com.sonar.cpp.analyzer.AnalysisHandler.acceptResult(AnalysisHandler.java:67)
	at com.sonar.cpp.analyzer.Subprocess.execute(Subprocess.java:128)
	at com.sonar.cpp.plugin.CFamilySensor.lambda$process$34(CFamilySensor.java:1328)
	at com.sonar.cpp.analyzer.AnalysisExecutor.lambda$submit$0(AnalysisExecutor.java:58)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)

ERROR: Exception in thread pool-4-thread-21
com.sonar.cpp.analyzer.Analyzer$AnalyzerException: Exit code 139: /opt/actions-runner/_work/EPEXcpp/EPEXcpp/EPEX/src/epex_broker/messages/error_response.cpp
	at com.sonar.cpp.analyzer.Subprocess.lambda$execute$1(Subprocess.java:43)
	at com.sonar.cpp.analyzer.Subprocess.execute(Subprocess.java:128)
	at com.sonar.cpp.analyzer.Subprocess.execute(Subprocess.java:39)
	at com.sonar.cpp.analyzer.ReproducerRequester.requestReproducer(ReproducerRequester.java:37)
	at com.sonar.cpp.analyzer.AnalysisHandler.acceptResult(AnalysisHandler.java:66)
	at com.sonar.cpp.analyzer.Subprocess.execute(Subprocess.java:128)
	at com.sonar.cpp.plugin.CFamilySensor.lambda$process$34(CFamilySensor.java:1328)
	at com.sonar.cpp.analyzer.AnalysisExecutor.lambda$submit$0(AnalysisExecutor.java:58)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)

ERROR: Exception in thread pool-4-thread-9
com.sonar.cpp.analyzer.Analyzer$AnalyzerException: Exit code 139: /opt/actions-runner/_work/EPEXcpp/EPEXcpp/EPEX/benchmarks/model_benchmarks.cpp
	at com.sonar.cpp.analyzer.AnalysisHandler.acceptResult(AnalysisHandler.java:67)
	at com.sonar.cpp.analyzer.Subprocess.execute(Subprocess.java:128)
	at com.sonar.cpp.plugin.CFamilySensor.lambda$process$34(CFamilySensor.java:1328)
	at com.sonar.cpp.analyzer.AnalysisExecutor.lambda$submit$0(AnalysisExecutor.java:58)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)

ERROR: Exception in thread pool-4-thread-8
com.sonar.cpp.analyzer.Analyzer$AnalyzerException: Exit code 139: /opt/actions-runner/_work/EPEXcpp/EPEXcpp/trader/src/generate_neighbour_data.cpp
	at com.sonar.cpp.analyzer.AnalysisHandler.acceptResult(AnalysisHandler.java:67)
	at com.sonar.cpp.analyzer.Subprocess.execute(Subprocess.java:128)
	at com.sonar.cpp.plugin.CFamilySensor.lambda$process$34(CFamilySensor.java:1328)
	at com.sonar.cpp.analyzer.AnalysisExecutor.lambda$submit$0(AnalysisExecutor.java:58)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)

ERROR: Exception in thread pool-4-thread-27
com.sonar.cpp.analyzer.Analyzer$AnalyzerException: Exit code 139: /opt/actions-runner/_work/EPEXcpp/EPEXcpp/EPEX/src/epex_broker/messages/message.cpp
	at com.sonar.cpp.analyzer.AnalysisHandler.acceptResult(AnalysisHandler.java:67)
	at com.sonar.cpp.analyzer.Subprocess.execute(Subprocess.java:128)
	at com.sonar.cpp.plugin.CFamilySensor.lambda$process$34(CFamilySensor.java:1328)
	at com.sonar.cpp.analyzer.AnalysisExecutor.lambda$submit$0(AnalysisExecutor.java:58)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)

ERROR: Exception in thread pool-4-thread-19
com.sonar.cpp.analyzer.Analyzer$AnalyzerException: Exit code 139: /opt/actions-runner/_work/EPEXcpp/EPEXcpp/EPEX/src/epex_broker/messages/response.cpp
	at com.sonar.cpp.analyzer.AnalysisHandler.acceptResult(AnalysisHandler.java:67)
	at com.sonar.cpp.analyzer.Subprocess.execute(Subprocess.java:128)
	at com.sonar.cpp.plugin.CFamilySensor.lambda$process$34(CFamilySensor.java:1328)
	at com.sonar.cpp.analyzer.AnalysisExecutor.lambda$submit$0(AnalysisExecutor.java:58)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)

ERROR: 
An error occurred while analyzing the following compilation unit: 
  /opt/actions-runner/_work/EPEXcpp/EPEXcpp/EPEX/src/epex_broker/messages/error_response.cpp
A file named "sonar-cfamily-reproducer.zip" has been generated to help the problem investigation.
Please contact SonarSource support providing the following file to help improving the analyzer:
  /opt/actions-runner/_work/EPEXcpp/EPEXcpp/sonar-cfamily-reproducer.zip

INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
INFO: Total time: 3:17.586s
ERROR: Error during SonarScanner execution
INFO: Final Memory: 68M/336M
INFO: ------------------------------------------------------------------------
java.lang.IllegalStateException: 
An error occurred while analyzing the following compilation unit: 
  /opt/actions-runner/_work/EPEXcpp/EPEXcpp/EPEX/src/epex_broker/messages/error_response.cpp
A file named "sonar-cfamily-reproducer.zip" has been generated to help the problem investigation.
Please contact SonarSource support providing the following file to help improving the analyzer:
  /opt/actions-runner/_work/EPEXcpp/EPEXcpp/sonar-cfamily-reproducer.zip

	at com.sonar.cpp.plugin.CFamilySensor.process(CFamilySensor.java:502)
	at com.sonar.cpp.plugin.CFamilySensor.execute(CFamilySensor.java:240)
	at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse(AbstractSensorWrapper.java:62)
	at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:75)
	at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:51)
	at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:64)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:123)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:109)
	at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:468)
	at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:464)
	at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:420)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:123)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:109)
	at org.sonar.scanner.bootstrap.GlobalContainer.doAfterStart(GlobalContainer.java:130)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:123)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:109)
	at org.sonar.batch.bootstrapper.Batch.doExecute(Batch.java:57)
	at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:51)
	at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:46)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
	at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
	at com.sun.proxy.$Proxy0.execute(Unknown Source)
	at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:189)
	at org.sonarsource.scanner.api.EmbeddedScanner.execute(EmbeddedScanner.java:138)
	at org.sonarsource.scanner.cli.Main.execute(Main.java:126)
	at org.sonarsource.scanner.cli.Main.execute(Main.java:81)
	at org.sonarsource.scanner.cli.Main.main(Main.java:62)
ERROR: 
ERROR: Re-run SonarScanner using the -X switch to enable full debug logging.

Is there a way to make sonarcloud use the clang-15 frontend?

See Clang 16.0.4 compiler error: "clang frontend command failed with exit code 139" · Issue #62518 · llvm/llvm-project · GitHub for the llvm issue

Hi @Anders_Wind and thanks for your question,

Unfortunately no, there is no way to use a different version of the analyzer in SonarCloud. The only way to have control over the version of the analyzer is to use a specific SonarQube version (and then you can only use the analyzer bundled in that version). Note that each analyzer version is linked to a fixed version of clang and there is no way to change that.

Also, to share a bit more information, The analyzer version used on SonarCloud at the moment (6.44.0.61773) depends on llvmorg-16.0.0. I haven’t looked very deeply into the crash you are having, but I tried the C-Reduce example from your previous issue, and it doesn’t seem to crash on 16.0.0. Maybe it is something different, could you share the generated "sonar-cfamily-reproducer.zip" file so that we can have a further look? I can send you a message if you prefer to share it privately.

Thanks!

I am quite sure its a another issue. The stacktrace is slightly different in the new 16.0.4 build. My guess is that c-reduce does not output code for each type of error but I might be wrong.
But yes please do send a private message and Ill have a reproducer zip ready. Thanks

Hi @Anders_Wind and thanks for sharing the reproducer. I have created a ticket CPP-4402 to track this issue.

Thanks, that means a lot!

1 Like

So it seems that clang-17 contains a fix in their frontend: Clang 16.0.4 compiler error: "clang frontend command failed with exit code 139" · Issue #62518 · llvm/llvm-project · GitHub

I just leave here a note that I bisected the fix commit on clang, and it turns out 60bee9ff544541e83ffbd4be31923d0e8b644690 should fix the parser crash.
I’ll continue with checking if backporting this commit would resolve the sonar crash as well.
Stay tuned!

Yes, it would prevent us from crashing, so backporting this would fix this issue.

I tried to backport the change and run some benchmarks. It turns out we would regress in other cases, and I don’t think it’s practical to investigate and backport the rest of the patches we might need to prevent regressions.
Consequently, I don’t think we can resolve this crash until clang-17.0.0 is out, which is expected around August - after which we can also rebase on top of it and get the necessary fixes.

Clang-17 is now out, do you have a timeline for when you will migrate to the new version?

@michael.jabbour Maybe this thread got buried so I’m pinging you here :slight_smile:

Hi @Anders_Wind, thanks for following up on the topic, we appreciate it.

I can confirm that we have been monitoring the release process of llvm-17, and we now have ongoing efforts to upgrade our analyzer to use clang-17.

Stay tuned! :smile:

Thanks for the reply, looking forward to getting the fix!

1 Like

The rebase is complete, and it should work with the next SonarQube release, likely somewhere around late October / early November. The same should be true for SonarCloud as well.
You might as well get the fixes slightly sooner on CompilerExplorer :wink:

EDIT: Mentioned SonarCloud expectations explicitly.

Great! Looking forward to the release :+1:

1 Like