Remove unneeded uses of 'volatile'

I have analyzed the current code and the commits that introduced these
'volatile' uses. Nothing seems even close to actually warrant volatile.
I can think of 3 reasons why it was introduced in the first place:

  1. (most likely) temporary debugging/testing use that became permanent
     by oversight;
  2. some esoteric compiler/optimizer bug workaround (this hypothetical
     bug is highly unlikely to have survived for more than 10 years to
     remain in GCC);
  3. a way to work around / hide a bug in the code itself (unlikely;
     this would be an unreliable fix that could break with any compiler
     update or a different compiler).

'volatile' is used very sparingly in KDevelop code because it is very
rarely useful in application code. See also
for valid 'volatile' use cases.

test_codecompletion, test_duchain and test_embeddedfreetree still pass
with these changes.
1 job for !143 with remove-unneeded-volatile in 60 minutes (queued for 1 second)
Status Job ID Name Coverage
failed #62701
linux kf5-qt5 qt5.12


Name Stage Failure
linux kf5-qt5 qt5.12 Build The script exceeded the maximum execution time set for the job
kf.init.klauncher: new app "org.kdevelop.kdevplatform-lock-6a09f0d1-7f1e-4bf0-9a60-31d9b77b6338"
32/123 Test #32: test_problemmodelset .................... Passed 2.77 sec
Start 33: test_problemstorenode
33/123 Test #33: test_problemstorenode ................... Passed 0.85 sec
Start 34: test_problemstore
kf.init.klauncher: new app ":1.26"
Uploading artifacts for failed job
Pulling docker image gitlab/gitlab-runner-helper:x86_64-a998cacd ...
ERROR: Job failed: execution took longer than 1h0m0s seconds