[PATCH][analyzer] Pass original command line arguments to compilers.
Anton Yartsev
anton.yartsev at gmail.com
Mon Oct 20 13:49:04 PDT 2014
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20141021/e1f964fb/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: scan-build.html.patch
Type: text/x-diff
Size: 2473 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20141021/e1f964fb/attachment.patch>
More information about the cfe-commits
mailing list