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

Reply via email to