I’m using Visual Studio Professional 2019 (v16.6.3) to connect to my enterprise’s SonarQube server via the SonarLint plugin for Visual Studio (v4.23.0.19399). When I save a C++ file to trigger analysis by SonarLint I get this stacktrace in the SonarLint output window:
Loaded settings from "C:\path\to\.sonarlint\myprojectkey_cpp_settings.json".
Using connected mode settings. User-specified settings in settings.json will be ignored.
Calculating effective rule settings...
Note: the following CFamily rules are not available in SonarLint: cpp:S5536, c:S5536, cpp:S5801, c:S5801, cpp:S5814, c:S5814, cpp:S5815, c:S5815, cpp:S5816, c:S5816, cpp:S5824, c:S5824
Analyzing C:\path\to\MyFile.cpp
Failed to analyze C:\path\to\MyFile.cpp, exception details: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.InvalidOperationException: This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.
at System.Security.Cryptography.MD5CryptoServiceProvider..ctor()
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Security.Cryptography.CryptoConfig.CreateFromName(String name, Object[] args)
at System.Security.Cryptography.MD5.Create()
at SonarLint.VisualStudio.Integration.Suppression.ChecksumCalculator.Calculate(String text)
at SonarLint.VisualStudio.Integration.Vsix.IssueToIssueMarkerConverter.Convert(IAnalysisIssue issue, ITextSnapshot textSnapshot)
at SonarLint.VisualStudio.Integration.Vsix.AccumulatingIssueConsumer.<Accept>b__8_0(IAnalysisIssue x)
at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
at SonarLint.VisualStudio.Integration.Vsix.AccumulatingIssueConsumer.Accept(String path, IEnumerable`1 issues)
at SonarLint.VisualStudio.Integration.Vsix.CFamily.CLangAnalyzer.HandleMessage(Message message, Request request, IIssueConsumer consumer, Int32& issueCount)
at SonarLint.VisualStudio.Integration.Vsix.CFamily.CLangAnalyzer.<>c__DisplayClass12_0.<TriggerAnalysisAsync>b__0(Message message)
at SonarLint.VisualStudio.Integration.Vsix.CFamily.Protocol.Read(BinaryReader reader, Action`1 handleIssue, String issueFilePath)
at SonarLint.VisualStudio.Integration.Vsix.CFamily.CFamilyHelper.<>c__DisplayClass8_1.<CallClangAnalyzer>b__1(StreamReader reader)
at SonarLint.VisualStudio.Integration.Vsix.CFamily.ProcessRunner.Execute(ProcessRunnerArguments runnerArgs)
at SonarLint.VisualStudio.Integration.Vsix.CFamily.CFamilyHelper.CallClangAnalyzer(Action`1 handleMessage, Request request, IProcessRunner runner, IAnalysisStatusNotifier statusNotifier, ILogger logger, CancellationToken cancellationToken)
Found 1 issue(s) for C:\path\to\MyFile.cpp
ERROR: LLVM ERROR: IO failure on output stream: invalid argument
Checking for suppressions...
Number of suppressions found: 0
And the Error List window shows nothing to do with SonarLint in it.
I was able to generate a sonar-cfamily.reproducer file but I’m unable to attach it because the C++ source code is proprietary. Sorry.