Re: cache hides compiler warnings about comments

Joel Rosdahl <[email protected]>
Newsgroups gmane.comp.compilers.ccache
Message-ID <CAK8D=phObsJvXS9pNexys0Wq5PQVE_46_pO=Fj5ywrsoy+UT+g@mail.gmail.com>
Hi Akim,

> Compilers such as gcc/clang support -C/-CC to leave comments
> in the preprocessed output.  Wouldn't it make sense to use it
> in ccache?

Perhaps yes, but one problem with that is that ccache (currently) can't
assume that the compiler accepts -C/-CC.

Also, there is this caveat in GCC documentation: "You should be prepared
for side effects when using -C; it causes the preprocessor to treat
comments as tokens in their own right.  For example, comments appearing at
the start of what would be a directive line have the effect of turning that
line into an ordinary source line, since the first token on the line is no
longer a #."

By the way, a workaround is to set CCACHE_CPP2 when compiling.

-- Joel


On 22 October 2013 15:59, Akim Demaille <[email protected]> wrote:

> Hi!
>
> Since the comments are removed by the preprocessor, they
> don't make it to the compiler, which in turn cannot make
> warnings about comments.
>
> This source file has issues in genuine code, and in comments:
>
>     $ cat foo.cc
>     /// \param foo
>     static int i;
>     int main() {}
>
> The compiler complains about both (-Wdocumentation is really
> all about comments):
>
>     $ clang++-mp-3.4 -Wdocumentation -Wunused -c foo.cc
>     foo.cc:1:6: warning: '\param' command used in a comment that is not
> attached to a function declaration [-Wdocumentation]
>     /// \param foo
>          ^~~~~
>     foo.cc:1:14: warning: empty paragraph passed to '\param' command
> [-Wdocumentation]
>     /// \param foo
>         ~~~~~~~~~^
>     foo.cc:2:12: warning: unused variable 'i' [-Wunused-variable]
>     static int i;
>                ^
>     3 warnings generated.
>
> But ccache shows just one kind of issue:
>
>     $ ccache clang++-mp-3.4 -Wdocumentation -Wunused -c foo.cc
>     foo.cc:2:12: warning: unused variable 'i' [-Wunused-variable]
>     static int i;
>                ^
>     1 warning generated.
>
> Compilers such as gcc/clang support -C/-CC to leave comments
> in the preprocessed output.  Wouldn't it make sense to use it
> in ccache?  That would keep such warnings alive:
>
>     $ ccache clang++-mp-3.4 -Wdocumentation -Wunused -c -C foo.cc
>     clang: warning: argument unused during compilation: '-C'
>     foo.cc:1:6: warning: '\param' command used in a comment that is not
> attached to a function declaration [-Wdocumentation]
>     /// \param foo
>          ^~~~~
>     foo.cc:1:14: warning: empty paragraph passed to '\param' command
> [-Wdocumentation]
>     /// \param foo
>         ~~~~~~~~~^
>     foo.cc:2:12: warning: unused variable 'i' [-Wunused-variable]
>     static int i;
>                ^
>     3 warnings generated.
>
> Thanks!
> _______________________________________________
> ccache mailing list
> [email protected]
> https://lists.samba.org/mailman/listinfo/ccache
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.