Anton, Thanks for the investigation.
Please, send the proposed wording as a patch. (Not sure if it would be possible to describe the symptoms of the problem.) Anna. > On Oct 18, 2014, at 1:56 AM, Anton Yartsev <[email protected]> wrote: > > As I was explained in the MSYS community the MSYS utils are dependent on the > MSYS runtime and their usage from cmd.exe is unsupported. "You are welcome to > try it, but if you observe odd behaviour, such as here, then you are out of > luck". > > I performed several tests and found out that proper processing is performed > with either running scan-build with MSYS make in the following way: > scan-build ... sh -c "make" > or with using mingw32-make and removal of MSYS from PATH (otherwise > mingw32-make tries to use MSYS utils). > > from the MinGW FAQ: > "What's the difference between make and mingw32-make? > The "native" (i.e.: MSVCRT dependent) port of make is lacking in some > functionality and has modified functionality due to the lack of POSIX on > Win32. There also exists a version of make in the MSYS distribution that is > dependent on the MSYS runtime. This port operates more as make was intended > to operate and gives less headaches during execution. Based on this, the > MinGW developers/maintainers/packagers decided it would be best to rename the > native version so that both the "native" version and the MSYS version could > be present at the same time without file name collision." > > Is it OK to add the recommendations to the scan-build: running the analyzer > from the command line > <http://clang-analyzer.llvm.org/scan-build.html#scanbuild_forwindowsusers>, > "For Windows Users" section? > >> Sorry, that's not a solution. >> >>> The goal of the patch is to pass unmodified arguments to compilers as they >>> were written in the makefile. Arguments taken from @ARGV may be modified by >>> the system and Perl, at least quotes and backslash sequences are processed. >>> Using this arguments may cause compiler errors. Sometimes system+Perl >>> corrupt arguments completely, for example, using perl from MSYS 1.0 on >>> Windows I got: >>> Line from makefile: >>> $(CXX) -DMACRO=\"string\" file.cpp "asd dff ghh" -o file.exe >>> >>> arguments red from @ARGV by c++-analyzer: >>> "-DMACRO=\string\" file.cpp -o file.exe" >>> >>> Please review! >>> > > -- > Anton
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
