CLion 2016.3 EAP: DFA fixes, rapid filtering in git log and more
Hi,
New EAP build, 163.5219.6, is available for download.
Data Flow Analysis
Data Flow Analysis is a powerful tool that allows CLion to understand your code better and warn you about such problems as always true/false conditions, unreachable code, endless loops, infinite recursion and more. This EAP brings some fixes for DFA checks in CLion:
- Correctly detect variable read by
cin
as changed (CPP-2377). - When variable is passed by reference to another function, it might be changed there. DFA in CLion was not able to correctly identify this possibility and thus was providing false positives (CPP-7638, CPP-7659). The problem is fixed now. Note, there are several cases that are still under development, find them in our tracker.
- We’ve also disabled equality checks in DFA for float/double values to avoid false positives.
__builtin_unreachable
, that is used to indicate that a specific point in the program cannot be reached, caused incorrect warnings in CLion, like for example false “Control reaches end of non-void function” in this case:
Starting from this EAP CLion supports it in a correct way, so no false warnings are shown.
Project Model
If you have lots of files generated automatically (typical use case is autogenerated automoc files), previously you could be annoyed by CLion adding them automatically to the project files. It’s not the case since this build.
To provide our users with better experience when working in a team, we’ve reworked the way CLion stores information in .iml files, that are special module files created by CLion. Please, make sure you’ve updated your stable CLion version to 2016.1.4 or 2016.2.2, which contains forward-compatibility fixes, so that you are able to open your projects in CLion 2016.3 EAP and current stable CLion versions at once.
Finally, there is also a fix for case-only target rename in CMake (CPP-883).
VCS improvements
With this build the performance of text, author and path filters in Git log increased dramatically! What happens there now is an index that is built for all commits on first-time project opening and later updated on a log refresh. This allows the IDE to speed up significantly when filtering:
Another small but important feature introduced in this build is an ability to add remote repositories to local Git repository (IDEA-87099).
User Interface
In case you are on mac and already got a fresh macOS Sierra, you’ll be glad to learn that this build includes a fix for an extremely sensitive scrolling with a trackpad.
Full release notes are available by the link as usual.
Download the build or get a patch update in case you are using previous CLion EAP, build 163.4830.5.
Your CLion Team
JetBrains
The Drive to Develop