[PATCH][analyzer] Pass original command line arguments to compilers.
Anton Yartsev
anton.yartsev at gmail.com
Thu Oct 30 07:28:50 PDT 2014
Ping!
> Updated the "For Windows Users" section with helpful hints, OK to commit?
>
>> 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 <anton.yartsev at gmail.com
>>> <mailto:anton.yartsev at gmail.com>> 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
>>
> --
> Anton
--
Anton
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20141030/a571c000/attachment.html>
More information about the cfe-commits
mailing list