Uploaded image for project: 'Qt Creator'
  1. Qt Creator
  2. QTCREATORBUG-22338

Compilation Database can misinterpret relative include paths

    XMLWordPrintable

    Details

    • Platform/s:
      All
    • Commits:
      443d8e4713d4c0a2d4d8a8dc0341910500c943b5 (qt-creator/qt-creator/master)

      Description

      The include path processing for the Compilation Database plugin includes the following code:

      if (!QDir(pathStr).exists()
              && QDir(workingDir + "/" + pathStr).exists()) {
          result = workingDir + "/" + pathStr;
      }
      

      The project I'm currently working with includes an include path (among others) of -I../.., which obviously exists almost anywhere in the file system, and thus the if block is skipped. This is wrong, however, as the path should definitely be interpreted relative to the working directory (which seems like it would always be the case for relative paths).

      Is there any reason not to do something like this, instead?

      if (!QDir(pathStr).isAbsolute()) {
          result = workingDir + "/" + pathStr;
      }
      

      It seems to work for me, but I don't know the reasoning behind the initial version.

        Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

            Assignee:
            yvvan Ivan Donchevskii
            Reporter:
            erikjensen Erik Jensen
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Gerrit Reviews

                There are no open Gerrit changes