I had a class deriving publically of an other class. I set a private inheritance, but then I got a S3540 error. And I disabled it.
But I realized later (after my post) the modification has been done it is in a Git submodule, which doesn’t have its own Sonar project. May be the source of the problem ?
I don’t see any raised error (accepted or not) in the matching directory, in spite many ones raised SonarQube for IDE, so I suppose it is not analyzed on the server.
The log that you mentioned is not referring to any error with the binding. It’s just an information that a shared binding configuration is not present for your project (you can learn more about shared binding configurations here)
[ThreadId 1] [Connected Mode > Shared Binding] The shared binding configuration file was not found and will not be used. Probed path: not found
I took a look at the logs and I couldn’t trace the root of the problem you are experiencing.
Could you, please, confirm that the S3540 is indeed disabled for your project in SonarQube Cloud? If you add this issue in an existing file of your main project (that is not part of the submodule) is it being raised as well or not?
In Administration > Quality profiles > C++ is set a customzied profile. Let’s call it CustomProfile.
In my organisation setttings, I choose the Quality Profiles tab, and for the C++ language, I choose CustomProfile. I click on xxx active rules.On the next page, as I can’t filter by rule number, I’m referring to the S3540’s features for filtering: Intentionality / Maintenability / Low. In the list, I cannot find the string “Base class access specifiers should not be redundant”.
Next, I click on yyy inactive rules, and I can’t find either S3540.
At the bottom of the page of S3540 page, it is said: “This rule isn’t activated on any Quality Profiles”.