Giter Site home page Giter Site logo

Comments (6)

rizsotto avatar rizsotto commented on June 1, 2024 1

Hi @yscialom , thanks for the report. Interesting bug. Will look at it on the weekend.

As a workaround I would suggest not to use percent sign in the output directory. ;)

from scan-build.

yscialom avatar yscialom commented on June 1, 2024

In fact this is even worse, scan-build ... cmake doesn't work at all if the path contains a %, no workaround found:

$ mkdir -p /tmp/scan-build-bug/cmake-with%
$ cd /tmp/scan-build-bug/cmake-with%
$ echo -e 'cmake_minimum_required (VERSION 3.1)\nproject(HELLO)\nadd_library(hello bug.cpp)' > CMakeLists.txt'
$ echo 'void f() { auto a = new int; delete a; *a = 0; }' > bug.cpp
$ scan-build -o $(mktemp -d) cmake3 .
scan-build: Using '/usr/bin/clang' for static analysis
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/scan-build-bug/cmake-with%
scan-build: Removing directory '/tmp/tmp.o99DJj0TEI/2019-09-04-144135-6851-1' because it contains no reports.
scan-build: No bugs found.
$ scan-build -o $(mktemp -d) make .  
scan-build: Using '/usr/bin/clang' for static analysis
scan-build: Removing directory '/tmp/tmp.HvpdLKhP37/2019-09-04-144140-6919-1' because it contains no reports.
scan-build: No bugs found.
$ ls bug*
buf.cpp

bug.o and libhello.a havn't been built!

from scan-build.

rizsotto avatar rizsotto commented on June 1, 2024

I did an investigation, and I've found that the line

warning: could not create file in '...': No such file or directory

is emited by Clang, not the scan-build. Which means, I can't really fix it. I would recommend to open a bug on Clang for this. And as a workaround, try to use another separator than %.

from scan-build.

yscialom avatar yscialom commented on June 1, 2024

This does not explain why scan-build cmake .. fails silently then.

from scan-build.

rizsotto avatar rizsotto commented on June 1, 2024

I think, it's still possible that scan-build cmake .. is fine.

  • I don't know what compiler your project is using. But if it's using gcc during the build (and the cmake run), that does not suffer from this bug.
  • And if you are using Clang, it has multiple modes. I saw that the "static-analyzer" mode fails if the % is in the output name. There is a high chance that the "compile" or the "link" mode does not have problem with the percent sign in the output.

from scan-build.

rizsotto avatar rizsotto commented on June 1, 2024

https://clang.llvm.org/doxygen/HTMLDiagnostics_8cpp_source.html#l00230
calls llvm::sys::fs::createUniqueFile which
https://llvm.org/doxygen/Path_8cpp_source.html#l00741
substitues % characters in the whole path.

They should do it only on the filename, and not on the full path.

from scan-build.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.