CLion 2016.3 EAP: DFA fixes, rapid filtering in git log and more

Anastasia Kazakova


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.

Download CLion 2016.3 EAP

Your CLion Team

The Drive to Develop

Comments below can no longer be edited.

9 Responses to CLion 2016.3 EAP: DFA fixes, rapid filtering in git log and more

  1. Olof says:

    September 30, 2016

    Feature suggestion. Whenever you introduce a new setting for a major version, highlight it in some way. And/Or allow you to either enter “new” or “2016.3” to see which options are new.

    I think that would encourage users to take advantage of new features, which I think would be a good thing for CLion.

    • Anastasia Kazakova says:

      September 30, 2016

      Do you mean in product? Could be, but maybe it will confuse new users.

  2. Olof says:

    October 3, 2016

    Yeah, I meant like when you open the settings.

    Not sure how it could be implemented such that it wouldn’t confuse new users.

    • Anastasia Kazakova says:

      October 3, 2016

      I see, thanks. We’ll think about it.

  3. Mikhail says:

    October 4, 2016

    Somehow git internal ssh client stopped working with this update.
    20:12:26.887: [FOOBAR] git -c core.quotepath=false fetch origin –progress –prune There was a problem while connecting to FOOBAR:7999
    at com.trilead.ssh2.Connection.connect(
    at com.trilead.ssh2.Connection.connect(
    at org.jetbrains.git4idea.ssh.SSHMain.start(
    at org.jetbrains.git4idea.ssh.SSHMain.main(
    Caused by: Malformed server identification string. There was no line starting with ‘SSH-‘ amongst the first 50 lines.
    at com.trilead.ssh2.transport.ClientServerHello.(
    at com.trilead.ssh2.transport.TransportManager.initialize(
    at com.trilead.ssh2.Connection.connect(
    … 3 more
    fatal: Could not read from remote repository.
    Please make sure you have the correct access rights
    and the repository exists.

    After I switched to Native SSH it worked fine.

    • Anastasia Kazakova says:

      October 4, 2016

      Looks like a known problem. There is a workaround:
      Setting Settings | Version Control | Git | SSH | Native should help. Note that if the private key is protected by a passphrase it is necessary to remember it in KeyChain due to

      • Mikhail says:

        October 4, 2016

        > Looks like a known problem.
        Do you have ticket number?


Subscribe for updates