<div dir="ltr">According to the autoconf docs, AC_PROG_CC_C99 will put the flag in the CC variable. I am not yet sure what is the right thing for scan-build to do, but in the meantime you may be able to work around this with<div>
<br></div><div>    scan-build make CFLAGS=-std=gnu99</div><div><br></div><div>or by putting the flag in AM_CFLAGS in <a href="http://configure.ac">configure.ac</a>.</div><div><br></div><div>The autoconf people seem to believe that CC should not be overridden except via the environment variable during ./configure, so they feel free to add flags to it. However, there is currently no way for scan-build to be passed a "make" command and know whether it will run a handwritten makefile or one generated by autoconf. Therefore, with or without <span style="font-family:arial,sans-serif;font-size:13px">r189372, some user will have to do extra work. From what I understand, running an autoconf-generated make through scan-build is only necessary to collect and generate the bug reports and not to override CC with ccc-analyzer, as that step is done when running "scan-build ./configure". If I'm right, maybe the solution would be to simply add another flag to scan-build, e.g. -a, which will prevent scan-build from passing CC and CXX to make, and the autoconf example of </span><font face="arial, sans-serif">scan-build.html could change to use this flag</font><span style="font-family:arial,sans-serif;font-size:13px">. Anybody have thoughts on that?</span></div>
<div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Sep 8, 2013 at 4:04 PM, Дмитрий Дьяченко <span dir="ltr"><<a href="mailto:dimhen@gmail.com" target="_blank">dimhen@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I use autoconf/libtool.<br>
In <a href="http://configure.ac" target="_blank">configure.ac</a> I have 'AC_PROG_CC_C99'<br>
<br>
After all Makefile contains<br>
CC = /home/dimhen/src/llvm_189371/tools/clang/tools/scan-build/ccc-analyzer<br>
-std=gnu99<br>
CFLAGS =   -g -DNO_ASN1_RT_REDUNDANT -D_COMPACT -fvar-tracking<br>
-fvar-tracking-assignments -fno-builtin -fno-common -O0 -pipe -m64<br>
-DUSE_JEMALLOC -DUSE_XMLSEC<br>
<br>
2013/9/8 Steve McCoy <<a href="mailto:mccoyst@gmail.com">mccoyst@gmail.com</a>>:<br>
<div class="HOEnZb"><div class="h5">> Are you setting 'CC=gcc -std=gnu99' in your build script, rather than<br>
> putting the -std flag inCFLAGS<br>
><br>
><br>
> On Sunday, September 8, 2013, Дмитрий Дьяченко wrote:<br>
>><br>
>> Jordan,<br>
>><br>
>> Now I know problem commit -- 189372, but I don't have a little testcase<br>
>> yet.<br>
>><br>
>> [ clang]$ svn log -r189372<br>
>> ------------------------------------------------------------------------<br>
>> r189372 | jrose | 2013-08-27 20:59:33 +0400 (Вт., 27 авг. 2013) | 6 lines<br>
>><br>
>> scan-build: Set CC and CXX as make variables when wrapping make builds.<br>
>> [...]<br>
>><br>
>> A bit more about my project's build:<br>
>> 1) autoreconf<br>
>> 2) '... scan-build configure ...'<br>
>> After step 2) build trees are identical for scan-build-189371 and<br>
>> scan-build-189372<br>
>><br>
>> 3) '... scan-build make'<br>
>> Difference in command line is: no '-std=gnu99' in rev.189372<br>
>><br>
>> rev.189372 (FAIL)<br>
>> $ ~/src/llvm_189372/tools/clang/tools/scan-build/scan-build<br>
>> --use-analyzer=/home/dimhen/build/csa_189372/Release+Asserts/bin/clang<br>
>> make<br>
>> scan-build: Using<br>
>> '/home/dimhen/build/csa_189372/Release+Asserts/bin/clang' for static<br>
>> analysis<br>
>> /bin/sh ../../../../libtool  --tag=CC --tag=disable-static<br>
>> --mode=compile<br>
>> /home/dimhen/src/llvm_189372/tools/clang/tools/scan-build/ccc-analyzer<br>
>> -DHAVE_CONFIG_H ..... x.c<br>
>><br>
>> rev.189371 (OK)<br>
>> $ ~/src/llvm_189371/tools/clang/tools/scan-build/scan-build<br>
>> --use-analyzer=/home/dimhen/build/csa_189371/Release+Asserts/bin/clang<br>
>> make<br>
>> scan-build: Using<br>
>> '/home/dimhen/build/csa_189371/Release+Asserts/bin/clang' for static<br>
>> analysis<br>
>> /bin/sh ../../../../libtool  --tag=CC --tag=disable-static<br>
>> --mode=compile<br>
>> /home/dimhen/src/llvm_189371/tools/clang/tools/scan-build/ccc-analyzer<br>
>> -std=gnu99 -DHAVE_CONFIG_H ... x.c<br>
>><br>
>><br>
>> A bit more about my environment<br>
>><br>
>> Fedora 19/x86_64<br>
>> make 3.82<br>
>> autoconf 2.69<br>
>> libtool 2.4.2<br>
>> m4 1.4.16<br>
>><br>
>> Thank you,<br>
>> Dmitry<br>
>><br>
>> 2013/9/6 Дмитрий Дьяченко <<a href="mailto:dimhen@gmail.com">dimhen@gmail.com</a>>:<br>
>> > Thank you, Jordan<br>
>> ><br>
>> > I'll try to reduce project to something reasonable.<br>
>> ><br>
>> > Dmitry<br>
>> ><br>
>> > 2013/9/6 Jordan Rose <<a href="mailto:jordan_rose@apple.com">jordan_rose@apple.com</a>>:<br>
>> >> I don't see this in a simple test. Can you send a test project that<br>
>> >> exhibits this behavior?<br>
>> >><br>
>> >> Jordan<br>
>> >><br>
>> >><br>
>> >> On Sep 6, 2013, at 11:25 , Дмитрий Дьяченко <<a href="mailto:dimhen@gmail.com">dimhen@gmail.com</a>> wrote:<br>
>> >><br>
>> >>> Hello!<br>
>> >>><br>
>> >>> Sounds like sometimes after 2013-aug-23 (probably before 28 aug)<br>
>> >>> scan-build  (or maybe clang) starts strip '-std=gnu99' from command<br>
>> >>> line.<br>
>> >>><br>
>> >>> I configure/make project using gcc for build and static checker for<br>
>> >>> analyze.<br>
>> >>><br>
>> >>> make with gcc has '-std=gnu99' in command line, but with<br>
>> >>> scan-build/ccc-analyzer not.<br>
>> >>><br>
>> >>> Anybody can confirm this?<br>
>> >>><br>
>> >>> Thank you,<br>
>> >>> Dmitry<br>
>> >>> _______________________________________________<br>
>> >>> cfe-dev mailing list<br>
>> >>> <a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
>> >>> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
>> >><br>
>><br>
>> _______________________________________________<br>
>> cfe-dev mailing list<br>
>> <a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
>> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
</div></div></blockquote></div><br></div>