Hello community,

here is the log from the commit of package ccache for openSUSE:Factory checked 
in at 2019-11-07 23:13:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ccache (Old)
 and      /work/SRC/openSUSE:Factory/.ccache.new.2990 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ccache"

Thu Nov  7 23:13:56 2019 rev:48 rq:745343 version:3.7.5

Changes:
--------
--- /work/SRC/openSUSE:Factory/ccache/ccache.changes    2019-10-28 
16:44:00.540520957 +0100
+++ /work/SRC/openSUSE:Factory/.ccache.new.2990/ccache.changes  2019-11-07 
23:13:57.512366014 +0100
@@ -1,0 +2,12 @@
+Tue Nov  5 08:14:20 UTC 2019 - Martin Pluskal <[email protected]>
+
+- Update to version 3.7.5:
+  * Added support for -MF=arg (with an extra equal sign) as understood by 
EDG-based compilers.
+  * Fixed a regression in 3.7.2 that could result in a warning message instead 
of an error in an edge case related to usage of “-Werror”.
+  * An implicit -MQ is now passed to the preprocessor only if the object file 
extension is non-standard. This will make it easier to use EDG-based compilers 
(e.g. GHS) which don’t understand -MQ. (This is a bug fix of the corresponding 
improvement implemented in ccache 3.4.)
+  * ccache now falls back to running the real compiler instead of failing 
fataly if an internal temporary file is missing after compilation.
+  * Fixed a crash if localtime returns null pointer in localtime_r replacement.
+  * Fixed header file dependency tracking when building ccache itself.
+  * Fixed warning during configure in out-of-tree build in developer mode.
+
+-------------------------------------------------------------------

Old:
----
  ccache-3.7.4.tar.xz
  ccache-3.7.4.tar.xz.asc

New:
----
  ccache-3.7.5.tar.xz
  ccache-3.7.5.tar.xz.asc

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ccache.spec ++++++
--- /var/tmp/diff_new_pack.GZCQVi/_old  2019-11-07 23:13:57.968366513 +0100
+++ /var/tmp/diff_new_pack.GZCQVi/_new  2019-11-07 23:13:57.976366522 +0100
@@ -17,11 +17,10 @@
 
 
 Name:           ccache
-Version:        3.7.4
+Version:        3.7.5
 Release:        0
 Summary:        A Fast C/C++ Compiler Cache
 License:        GPL-3.0-or-later
-Group:          Development/Languages/C and C++
 URL:            https://ccache.dev/
 Source0:        
https://github.com/ccache/ccache/releases/download/v%{version}/ccache-%{version}.tar.xz#/%{name}-%{version}.tar.xz
 Source1:        
https://github.com/ccache/ccache/releases/download/v%{version}/ccache-%{version}.tar.xz.asc#/%{name}-%{version}.tar.xz.asc

++++++ ccache-3.7.4.tar.xz -> ccache-3.7.5.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccache-3.7.4/LICENSE.html 
new/ccache-3.7.5/LICENSE.html
--- old/ccache-3.7.4/LICENSE.html       2019-09-12 21:14:51.000000000 +0200
+++ new/ccache-3.7.5/LICENSE.html       2019-10-22 20:51:15.000000000 +0200
@@ -735,7 +735,7 @@
 <body class="article">
 <div id="header">
 <h1>ccache copyright and license</h1>
-<span id="revnumber">version 3.7.4</span>
+<span id="revnumber">version 3.7.5</span>
 <div id="toc">
   <div id="toctitle">Table of Contents</div>
   <noscript><p><b>JavaScript must be enabled in your browser to display the 
table of contents.</b></p></noscript>
@@ -1235,9 +1235,9 @@
 <div id="footnotes"><hr /></div>
 <div id="footer">
 <div id="footer-text">
-Version 3.7.4<br />
+Version 3.7.5<br />
 Last updated
- 2019-09-12 21:14:17 CEST
+ 2019-10-22 20:50:43 CEST
 </div>
 </div>
 </body>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccache-3.7.4/Makefile.in new/ccache-3.7.5/Makefile.in
--- old/ccache-3.7.4/Makefile.in        2019-09-12 21:14:51.000000000 +0200
+++ new/ccache-3.7.5/Makefile.in        2019-10-22 20:51:15.000000000 +0200
@@ -126,6 +126,8 @@
 clean:
        rm -rf $(files_to_clean)
 
+$(non_3pp_objs) $(test_objs): CFLAGS += @more_warnings@
+
 src/snprintf.o: CFLAGS += @no_implicit_fallthrough_warning@
 $(zlib_objs): CPPFLAGS += -include config.h
 $(zlib_objs): CFLAGS += @no_implicit_fallthrough_warning@
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccache-3.7.4/configure new/ccache-3.7.5/configure
--- old/ccache-3.7.4/configure  2019-09-12 21:14:51.000000000 +0200
+++ new/ccache-3.7.5/configure  2019-10-22 20:51:15.000000000 +0200
@@ -4067,24 +4067,22 @@
     CFLAGS="$CFLAGS -O"
 fi
 
-more_warnings="-Wextra -Wpedantic"
-if test "$ac_compiler_clang" = yes; then
-    more_warnings="$more_warnings -Weverything"
-    more_warnings="$more_warnings -Wno-conversion"
-    more_warnings="$more_warnings -Wno-disabled-macro-expansion"
-    more_warnings="$more_warnings -Wno-format-nonliteral"
-    more_warnings="$more_warnings -Wno-padded"
-    more_warnings="$more_warnings -Wno-shorten-64-to-32"
-    more_warnings="$more_warnings -Wno-sign-conversion"
-fi
-
 # Check whether --enable-more_warnings was given.
 if test "${enable_more_warnings+set}" = set; then :
   enableval=$enable_more_warnings;
 fi
 
 if test x${enable_more_warnings} = xyes; then
-    CFLAGS="$CFLAGS $more_warnings"
+    more_warnings="-Wextra -Wpedantic"
+    if test "$ac_compiler_clang" = yes; then
+        more_warnings="$more_warnings -Weverything"
+        more_warnings="$more_warnings -Wno-conversion"
+        more_warnings="$more_warnings -Wno-disabled-macro-expansion"
+        more_warnings="$more_warnings -Wno-format-nonliteral"
+        more_warnings="$more_warnings -Wno-padded"
+        more_warnings="$more_warnings -Wno-shorten-64-to-32"
+        more_warnings="$more_warnings -Wno-sign-conversion"
+    fi
 fi
 
 
@@ -6343,6 +6341,7 @@
 
     include_dev_mk='include dev.mk'
     version=`(git --git-dir=$srcdir/.git describe --dirty 2>/dev/null || echo 
vunknown) | sed -e 's/v//' -e 's/-/+/' -e 's/-/_/g'`
+    mkdir -p src
     echo "extern const char CCACHE_VERSION[]; const char CCACHE_VERSION[] = 
\"$version\";" >src/version.c
     if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}gperf", so it can be a program 
name with args.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccache-3.7.4/configure.ac 
new/ccache-3.7.5/configure.ac
--- old/ccache-3.7.4/configure.ac       2019-09-12 21:14:51.000000000 +0200
+++ new/ccache-3.7.5/configure.ac       2019-10-22 20:51:15.000000000 +0200
@@ -56,22 +56,20 @@
     CFLAGS="$CFLAGS -O"
 fi
 
-more_warnings="-Wextra -Wpedantic"
-if test "$ac_compiler_clang" = yes; then
-    more_warnings="$more_warnings -Weverything"
-    more_warnings="$more_warnings -Wno-conversion"
-    more_warnings="$more_warnings -Wno-disabled-macro-expansion"
-    more_warnings="$more_warnings -Wno-format-nonliteral"
-    more_warnings="$more_warnings -Wno-padded"
-    more_warnings="$more_warnings -Wno-shorten-64-to-32"
-    more_warnings="$more_warnings -Wno-sign-conversion"
-fi
-
 AC_ARG_ENABLE(more_warnings,
   [AS_HELP_STRING([--enable-more-warnings],
     [enable more compiler warnings])])
 if test x${enable_more_warnings} = xyes; then
-    CFLAGS="$CFLAGS $more_warnings"
+    more_warnings="-Wextra -Wpedantic"
+    if test "$ac_compiler_clang" = yes; then
+        more_warnings="$more_warnings -Weverything"
+        more_warnings="$more_warnings -Wno-conversion"
+        more_warnings="$more_warnings -Wno-disabled-macro-expansion"
+        more_warnings="$more_warnings -Wno-format-nonliteral"
+        more_warnings="$more_warnings -Wno-padded"
+        more_warnings="$more_warnings -Wno-shorten-64-to-32"
+        more_warnings="$more_warnings -Wno-sign-conversion"
+    fi
 fi
 
 AC_HEADER_DIRENT
@@ -213,6 +211,7 @@
     AC_CONFIG_FILES([dev.mk])
     include_dev_mk='include dev.mk'
     version=`(git --git-dir=$srcdir/.git describe --dirty 2>/dev/null || echo 
vunknown) | sed -e 's/v//' -e 's/-/+/' -e 's/-/_/g'`
+    mkdir -p src
     echo "extern const char CCACHE_VERSION@<:@@:>@; const char 
CCACHE_VERSION@<:@@:>@ = \"$version\";" >src/version.c
     AC_CHECK_TOOL(GPERF, gperf)
     if test -z "$GPERF"; then
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccache-3.7.4/dev.mk.in new/ccache-3.7.5/dev.mk.in
--- old/ccache-3.7.4/dev.mk.in  2019-09-12 21:14:51.000000000 +0200
+++ new/ccache-3.7.5/dev.mk.in  2019-10-22 20:51:15.000000000 +0200
@@ -1,7 +1,7 @@
 # GNU make syntax reigns in this file.
 
 all_cflags += -Werror
-all_cppflags += -MD -MP -MF .deps/$(subst .._,,$(subst /,_,$(subst 
$(srcdir)/,,$<))).d
+all_cppflags += -MD -MP -MF .deps/$(subst .._,,$(subst /,_,$(subst 
$(srcdir)/,,$<))).d -MQ $@
 
 A2X = a2x
 ASCIIDOC = asciidoc
@@ -185,8 +185,6 @@
        $(Q)$(ASCIIDOC) -a revnumber=$(version) -d manpage -b docbook -o - $< | 
\
          perl -pe 's!<literal>(.*?)</literal>!<emphasis 
role="strong">\1</emphasis>!g' >$@
 
-$(non_3pp_objs) $(test_objs): CFLAGS += @more_warnings@
-
 doc/ccache.1: doc/MANUAL.xml
        $(if $(quiet),@echo "  A2X      $@")
        $(Q)$(A2X) --doctype manpage --format manpage $<
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccache-3.7.4/doc/AUTHORS.adoc 
new/ccache-3.7.5/doc/AUTHORS.adoc
--- old/ccache-3.7.4/doc/AUTHORS.adoc   2019-09-12 21:14:51.000000000 +0200
+++ new/ccache-3.7.5/doc/AUTHORS.adoc   2019-10-22 20:51:15.000000000 +0200
@@ -24,6 +24,7 @@
 * David Givone
 * Doug Anderson
 * Edward Z. Yang
+* Erik Johansson
 * Francois Marier
 * Gabriel Scherer
 * Geert Bosch
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccache-3.7.4/doc/AUTHORS.html 
new/ccache-3.7.5/doc/AUTHORS.html
--- old/ccache-3.7.4/doc/AUTHORS.html   2019-09-12 21:14:51.000000000 +0200
+++ new/ccache-3.7.5/doc/AUTHORS.html   2019-10-22 20:51:15.000000000 +0200
@@ -735,7 +735,7 @@
 <body class="article">
 <div id="header">
 <h1>ccache authors</h1>
-<span id="revnumber">version 3.7.4</span>
+<span id="revnumber">version 3.7.5</span>
 <div id="toc">
   <div id="toctitle">Table of Contents</div>
   <noscript><p><b>JavaScript must be enabled in your browser to display the 
table of contents.</b></p></noscript>
@@ -840,6 +840,11 @@
 </li>
 <li>
 <p>
+Erik Johansson
+</p>
+</li>
+<li>
+<p>
 Francois Marier
 </p>
 </li>
@@ -1246,9 +1251,9 @@
 <div id="footnotes"><hr /></div>
 <div id="footer">
 <div id="footer-text">
-Version 3.7.4<br />
+Version 3.7.5<br />
 Last updated
- 2019-09-12 21:14:17 CEST
+ 2019-10-22 20:50:43 CEST
 </div>
 </div>
 </body>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccache-3.7.4/doc/MANUAL.html 
new/ccache-3.7.5/doc/MANUAL.html
--- old/ccache-3.7.4/doc/MANUAL.html    2019-09-12 21:14:51.000000000 +0200
+++ new/ccache-3.7.5/doc/MANUAL.html    2019-10-22 20:51:15.000000000 +0200
@@ -735,7 +735,7 @@
 <body class="article">
 <div id="header">
 <h1>CCACHE(1)</h1>
-<span id="revnumber">version 3.7.4</span>
+<span id="revnumber">version 3.7.5</span>
 <div id="toc">
   <div id="toctitle">Table of Contents</div>
   <noscript><p><b>JavaScript must be enabled in your browser to display the 
table of contents.</b></p></noscript>
@@ -2746,9 +2746,9 @@
 <div id="footnotes"><hr /></div>
 <div id="footer">
 <div id="footer-text">
-Version 3.7.4<br />
+Version 3.7.5<br />
 Last updated
- 2019-09-12 21:14:17 CEST
+ 2019-10-22 20:50:43 CEST
 </div>
 </div>
 </body>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccache-3.7.4/doc/NEWS.adoc 
new/ccache-3.7.5/doc/NEWS.adoc
--- old/ccache-3.7.4/doc/NEWS.adoc      2019-09-12 21:14:51.000000000 +0200
+++ new/ccache-3.7.5/doc/NEWS.adoc      2019-10-22 20:51:15.000000000 +0200
@@ -1,6 +1,38 @@
 ccache news
 ===========
 
+ccache 3.7.5
+------------
+Release date: 2019-10-22
+
+New features
+~~~~~~~~~~~~
+
+- Added support for `-MF=arg` (with an extra equal sign) as understood by
+  EDG-based compilers.
+
+
+Bug fixes
+~~~~~~~~~
+
+- Fixed a regression in 3.7.2 that could result in a warning message instead of
+  an error in an edge case related to usage of “-Werror”.
+
+- An implicit `-MQ` is now passed to the preprocessor only if the object file
+  extension is non-standard. This will make it easier to use EDG-based
+  compilers (e.g. GHS) which don’t understand `-MQ`. (This is a bug fix of the
+  corresponding improvement implemented in ccache 3.4.)
+
+- ccache now falls back to running the real compiler instead of failing fataly
+  if an internal temporary file is missing after compilation.
+
+- Fixed a crash if localtime returns null pointer in localtime_r replacement.
+
+- Fixed header file dependency tracking when building ccache itself.
+
+- Fixed warning during configure in out-of-tree build in developer mode.
+
+
 ccache 3.7.4
 ------------
 Release date: 2019-09-12
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccache-3.7.4/doc/NEWS.html 
new/ccache-3.7.5/doc/NEWS.html
--- old/ccache-3.7.4/doc/NEWS.html      2019-09-12 21:14:51.000000000 +0200
+++ new/ccache-3.7.5/doc/NEWS.html      2019-10-22 20:51:15.000000000 +0200
@@ -735,7 +735,7 @@
 <body class="article">
 <div id="header">
 <h1>ccache news</h1>
-<span id="revnumber">version 3.7.4</span>
+<span id="revnumber">version 3.7.5</span>
 <div id="toc">
   <div id="toctitle">Table of Contents</div>
   <noscript><p><b>JavaScript must be enabled in your browser to display the 
table of contents.</b></p></noscript>
@@ -743,6 +743,63 @@
 </div>
 <div id="content">
 <div class="sect1">
+<h2 id="_ccache_3_7_5">ccache 3.7.5</h2>
+<div class="sectionbody">
+<div class="paragraph"><p>Release date: 2019-10-22</p></div>
+<div class="sect2">
+<h3 id="_new_features">New features</h3>
+<div class="ulist"><ul>
+<li>
+<p>
+Added support for <code>-MF=arg</code> (with an extra equal sign) as 
understood by
+  EDG-based compilers.
+</p>
+</li>
+</ul></div>
+</div>
+<div class="sect2">
+<h3 id="_bug_fixes">Bug fixes</h3>
+<div class="ulist"><ul>
+<li>
+<p>
+Fixed a regression in 3.7.2 that could result in a warning message instead of
+  an error in an edge case related to usage of “-Werror”.
+</p>
+</li>
+<li>
+<p>
+An implicit <code>-MQ</code> is now passed to the preprocessor only if the 
object file
+  extension is non-standard. This will make it easier to use EDG-based
+  compilers (e.g. GHS) which don’t understand <code>-MQ</code>. (This is a bug 
fix of the
+  corresponding improvement implemented in ccache 3.4.)
+</p>
+</li>
+<li>
+<p>
+ccache now falls back to running the real compiler instead of failing fataly
+  if an internal temporary file is missing after compilation.
+</p>
+</li>
+<li>
+<p>
+Fixed a crash if localtime returns null pointer in localtime_r replacement.
+</p>
+</li>
+<li>
+<p>
+Fixed header file dependency tracking when building ccache itself.
+</p>
+</li>
+<li>
+<p>
+Fixed warning during configure in out-of-tree build in developer mode.
+</p>
+</li>
+</ul></div>
+</div>
+</div>
+</div>
+<div class="sect1">
 <h2 id="_ccache_3_7_4">ccache 3.7.4</h2>
 <div class="sectionbody">
 <div class="paragraph"><p>Release date: 2019-09-12</p></div>
@@ -771,7 +828,7 @@
 <div class="sectionbody">
 <div class="paragraph"><p>Release date: 2019-08-17</p></div>
 <div class="sect2">
-<h3 id="_bug_fixes">Bug fixes</h3>
+<h3 id="_bug_fixes_2">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -796,7 +853,7 @@
 <div class="sectionbody">
 <div class="paragraph"><p>Release date: 2019-07-19</p></div>
 <div class="sect2">
-<h3 id="_bug_fixes_2">Bug fixes</h3>
+<h3 id="_bug_fixes_3">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -1253,7 +1310,7 @@
 <div class="sectionbody">
 <div class="paragraph"><p>Release date: 2018-09-02</p></div>
 <div class="sect2">
-<h3 id="_bug_fixes_3">Bug fixes</h3>
+<h3 id="_bug_fixes_4">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -1290,7 +1347,7 @@
 <div class="sectionbody">
 <div class="paragraph"><p>Release date: 2018-03-25</p></div>
 <div class="sect2">
-<h3 id="_bug_fixes_4">Bug fixes</h3>
+<h3 id="_bug_fixes_5">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -1334,7 +1391,7 @@
 <div class="sectionbody">
 <div class="paragraph"><p>Release date: 2018-02-11</p></div>
 <div class="sect2">
-<h3 id="_bug_fixes_5">Bug fixes</h3>
+<h3 id="_bug_fixes_6">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -1420,7 +1477,7 @@
 </ul></div>
 </div>
 <div class="sect2">
-<h3 id="_bug_fixes_6">Bug fixes</h3>
+<h3 id="_bug_fixes_7">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -1458,7 +1515,7 @@
 </ul></div>
 </div>
 <div class="sect2">
-<h3 id="_bug_fixes_7">Bug fixes</h3>
+<h3 id="_bug_fixes_8">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -1484,7 +1541,7 @@
 </ul></div>
 </div>
 <div class="sect2">
-<h3 id="_bug_fixes_8">Bug fixes</h3>
+<h3 id="_bug_fixes_9">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -1567,7 +1624,7 @@
 </ul></div>
 </div>
 <div class="sect2">
-<h3 id="_bug_fixes_9">Bug fixes</h3>
+<h3 id="_bug_fixes_10">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -1597,7 +1654,7 @@
 <div class="sectionbody">
 <div class="paragraph"><p>Release date: 2016-10-26</p></div>
 <div class="sect2">
-<h3 id="_bug_fixes_10">Bug fixes</h3>
+<h3 id="_bug_fixes_11">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -1614,7 +1671,7 @@
 <div class="sectionbody">
 <div class="paragraph"><p>Release date: 2016-09-28</p></div>
 <div class="sect2">
-<h3 id="_bug_fixes_11">Bug fixes</h3>
+<h3 id="_bug_fixes_12">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -1639,7 +1696,7 @@
 <div class="sectionbody">
 <div class="paragraph"><p>Release date: 2016-09-07</p></div>
 <div class="sect2">
-<h3 id="_bug_fixes_12">Bug fixes</h3>
+<h3 id="_bug_fixes_13">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -1821,7 +1878,7 @@
 </ul></div>
 </div>
 <div class="sect2">
-<h3 id="_bug_fixes_13">Bug fixes</h3>
+<h3 id="_bug_fixes_14">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -1847,7 +1904,7 @@
 <div class="sectionbody">
 <div class="paragraph"><p>Release date: 2016-09-28</p></div>
 <div class="sect2">
-<h3 id="_bug_fixes_14">Bug fixes</h3>
+<h3 id="_bug_fixes_15">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -1865,7 +1922,7 @@
 <div class="sectionbody">
 <div class="paragraph"><p>Release date: 2016-09-07</p></div>
 <div class="sect2">
-<h3 id="_bug_fixes_15">Bug fixes</h3>
+<h3 id="_bug_fixes_16">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -1889,7 +1946,7 @@
 <div class="sectionbody">
 <div class="paragraph"><p>Release date: 2016-07-20</p></div>
 <div class="sect2">
-<h3 id="_bug_fixes_16">Bug fixes</h3>
+<h3 id="_bug_fixes_17">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -1912,7 +1969,7 @@
 <div class="sectionbody">
 <div class="paragraph"><p>Release date: 2016-07-12</p></div>
 <div class="sect2">
-<h3 id="_bug_fixes_17">Bug fixes</h3>
+<h3 id="_bug_fixes_18">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -1962,7 +2019,7 @@
 </ul></div>
 </div>
 <div class="sect2">
-<h3 id="_bug_fixes_18">Bug fixes</h3>
+<h3 id="_bug_fixes_19">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -2022,7 +2079,7 @@
 <div class="sectionbody">
 <div class="paragraph"><p>Release date: 2015-10-08</p></div>
 <div class="sect2">
-<h3 id="_bug_fixes_19">Bug fixes</h3>
+<h3 id="_bug_fixes_20">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -2077,7 +2134,7 @@
 </ul></div>
 </div>
 <div class="sect2">
-<h3 id="_bug_fixes_20">Bug fixes</h3>
+<h3 id="_bug_fixes_21">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -2131,7 +2188,7 @@
 </ul></div>
 </div>
 <div class="sect2">
-<h3 id="_bug_fixes_21">Bug fixes</h3>
+<h3 id="_bug_fixes_22">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -2201,7 +2258,7 @@
 <div class="sectionbody">
 <div class="paragraph"><p>Release date: 2014-12-10</p></div>
 <div class="sect2">
-<h3 id="_bug_fixes_22">Bug fixes</h3>
+<h3 id="_bug_fixes_23">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -2433,7 +2490,7 @@
 </ul></div>
 </div>
 <div class="sect2">
-<h3 id="_bug_fixes_23">Bug fixes</h3>
+<h3 id="_bug_fixes_24">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -2464,7 +2521,7 @@
 <div class="sectionbody">
 <div class="paragraph"><p>Release date: 2016-07-12</p></div>
 <div class="sect2">
-<h3 id="_bug_fixes_24">Bug fixes</h3>
+<h3 id="_bug_fixes_25">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -2482,7 +2539,7 @@
 <div class="sectionbody">
 <div class="paragraph"><p>Release date: 2015-03-07</p></div>
 <div class="sect2">
-<h3 id="_bug_fixes_25">Bug fixes</h3>
+<h3 id="_bug_fixes_26">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -2564,7 +2621,7 @@
 </ul></div>
 </div>
 <div class="sect2">
-<h3 id="_bug_fixes_26">Bug fixes</h3>
+<h3 id="_bug_fixes_27">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -2604,7 +2661,7 @@
 <div class="sectionbody">
 <div class="paragraph"><p>Release date: 2013-01-06</p></div>
 <div class="sect2">
-<h3 id="_bug_fixes_27">Bug fixes</h3>
+<h3 id="_bug_fixes_28">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -2675,7 +2732,7 @@
 </ul></div>
 </div>
 <div class="sect2">
-<h3 id="_bug_fixes_28">Bug fixes</h3>
+<h3 id="_bug_fixes_29">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -2723,7 +2780,7 @@
 <div class="sectionbody">
 <div class="paragraph"><p>Release date: 2012-01-08</p></div>
 <div class="sect2">
-<h3 id="_bug_fixes_29">Bug fixes</h3>
+<h3 id="_bug_fixes_30">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -2806,7 +2863,7 @@
 </ul></div>
 </div>
 <div class="sect2">
-<h3 id="_bug_fixes_30">Bug fixes</h3>
+<h3 id="_bug_fixes_31">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -2859,7 +2916,7 @@
 </ul></div>
 </div>
 <div class="sect2">
-<h3 id="_bug_fixes_31">Bug fixes</h3>
+<h3 id="_bug_fixes_32">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -2892,7 +2949,7 @@
 <div class="sectionbody">
 <div class="paragraph"><p>Release date: 2011-01-09</p></div>
 <div class="sect2">
-<h3 id="_bug_fixes_32">Bug fixes</h3>
+<h3 id="_bug_fixes_33">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -2925,7 +2982,7 @@
 <div class="sectionbody">
 <div class="paragraph"><p>Release date: 2010-11-28</p></div>
 <div class="sect2">
-<h3 id="_bug_fixes_33">Bug fixes</h3>
+<h3 id="_bug_fixes_34">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -2952,7 +3009,7 @@
 <div class="sectionbody">
 <div class="paragraph"><p>Release date: 2010-11-21</p></div>
 <div class="sect2">
-<h3 id="_bug_fixes_34">Bug fixes</h3>
+<h3 id="_bug_fixes_35">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -3000,7 +3057,7 @@
 <div class="sectionbody">
 <div class="paragraph"><p>Release date: 2010-11-07</p></div>
 <div class="sect2">
-<h3 id="_bug_fixes_35">Bug fixes</h3>
+<h3 id="_bug_fixes_36">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -3122,7 +3179,7 @@
 </ul></div>
 </div>
 <div class="sect2">
-<h3 id="_bug_fixes_36">Bug fixes</h3>
+<h3 id="_bug_fixes_37">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -3208,7 +3265,7 @@
 <div class="sectionbody">
 <div class="paragraph"><p>Release date: 2010-07-15</p></div>
 <div class="sect2">
-<h3 id="_bug_fixes_37">Bug fixes</h3>
+<h3 id="_bug_fixes_38">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -3397,7 +3454,7 @@
 </ul></div>
 </div>
 <div class="sect2">
-<h3 id="_bug_fixes_38">Bug fixes</h3>
+<h3 id="_bug_fixes_39">Bug fixes</h3>
 <div class="ulist"><ul>
 <li>
 <p>
@@ -3542,9 +3599,9 @@
 <div id="footnotes"><hr /></div>
 <div id="footer">
 <div id="footer-text">
-Version 3.7.4<br />
+Version 3.7.5<br />
 Last updated
- 2019-09-12 21:14:17 CEST
+ 2019-10-22 20:50:43 CEST
 </div>
 </div>
 </body>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccache-3.7.4/doc/ccache.1 
new/ccache-3.7.5/doc/ccache.1
--- old/ccache-3.7.4/doc/ccache.1       2019-09-12 21:14:51.000000000 +0200
+++ new/ccache-3.7.5/doc/ccache.1       2019-10-22 20:51:15.000000000 +0200
@@ -2,12 +2,12 @@
 .\"     Title: ccache
 .\"    Author: [see the "Author" section]
 .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
-.\"      Date: 09/12/2019
+.\"      Date: 10/22/2019
 .\"    Manual: ccache Manual
-.\"    Source: ccache 3.7.4
+.\"    Source: ccache 3.7.5
 .\"  Language: English
 .\"
-.TH "CCACHE" "1" "09/12/2019" "ccache 3\&.7\&.4" "ccache Manual"
+.TH "CCACHE" "1" "10/22/2019" "ccache 3\&.7\&.5" "ccache Manual"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccache-3.7.4/src/ccache.c 
new/ccache-3.7.5/src/ccache.c
--- old/ccache-3.7.4/src/ccache.c       2019-09-12 21:14:51.000000000 +0200
+++ new/ccache-3.7.5/src/ccache.c       2019-10-22 20:51:15.000000000 +0200
@@ -280,6 +280,10 @@
 // Temporary files to remove at program exit.
 static struct pending_tmp_file *pending_tmp_files = NULL;
 
+// How often (in seconds) to scan $CCACHE_DIR/tmp for left-over temporary
+// files.
+static const int k_tempdir_cleanup_interval = 2 * 24 * 60 * 60; // 2 days
+
 #ifndef _WIN32
 static sigset_t fatal_signal_set;
 
@@ -480,7 +484,8 @@
 {
        time_t now = time(NULL);
        struct stat st;
-       if (x_stat(conf->cache_dir, &st) != 0 || st.st_mtime + 3600 >= now) {
+       if (x_stat(conf->cache_dir, &st) != 0
+                       || st.st_mtime + k_tempdir_cleanup_interval >= now) {
                // No cleanup needed.
                return;
        }
@@ -499,7 +504,8 @@
                }
 
                char *path = format("%s/%s", temp_dir(), entry->d_name);
-               if (x_lstat(path, &st) == 0 && st.st_mtime + 3600 < now) {
+               if (x_lstat(path, &st) == 0
+                               && st.st_mtime + k_tempdir_cleanup_interval < 
now) {
                        tmp_unlink(path);
                }
                free(path);
@@ -1720,7 +1726,10 @@
 
        hash_delimiter(hash, "cppstderr");
        if (!direct_i_file && !hash_file(hash, path_stderr)) {
-               fatal("Failed to open %s: %s", path_stderr, strerror(errno));
+               // Somebody removed the temporary file?
+               stats_update(STATS_ERROR);
+               cc_log("Failed to open %s: %s", path_stderr, strerror(errno));
+               failed();
        }
 
        if (direct_i_file) {
@@ -2492,10 +2501,15 @@
 }
 
 // Process the compiler options into options suitable for passing to the
-// preprocessor and the real compiler. The preprocessor options don't include
-// -E; this is added later. Returns true on success, otherwise false.
+// preprocessor and the real compiler. preprocessor_args doesn't include -E;
+// this is added later. extra_args_to_hash are the arguments that are not
+// included in preprocessor_args but that should be included in the hash.
+//
+// Returns true on success, otherwise false.
 bool
-cc_process_args(struct args *args, struct args **preprocessor_args,
+cc_process_args(struct args *args,
+                struct args **preprocessor_args,
+                struct args **extra_args_to_hash,
                 struct args **compiler_args)
 {
        bool found_c_opt = false;
@@ -2825,8 +2839,11 @@
                                arg = argv[i + 1];
                                i++;
                        } else {
-                               // -MFarg
+                               // -MFarg or -MF=arg (EDG-based compilers)
                                arg = &argv[i][3];
+                               if (arg[0] == '=') {
+                                       ++arg;
+                               }
                        }
                        output_dep = make_relative_path(x_strdup(arg));
                        // Keep the format of the args the same.
@@ -3517,7 +3534,7 @@
 
                if (!dependency_target_specified
                    && !dependency_implicit_target_specified
-                   && !str_eq(get_extension(output_dep), ".o")) {
+                   && !str_eq(get_extension(output_obj), ".o")) {
                        args_add(dep_args, "-MQ");
                        args_add(dep_args, output_obj);
                }
@@ -3580,6 +3597,10 @@
        *preprocessor_args = args_copy(common_args);
        args_extend(*preprocessor_args, cpp_args);
 
+       if (extra_args_to_hash) {
+               *extra_args_to_hash = compiler_only_args;
+       }
+
 out:
        args_free(expanded_args);
        args_free(common_args);
@@ -3918,10 +3939,14 @@
 
        // Arguments (except -E) to send to the preprocessor.
        struct args *preprocessor_args;
+       // Arguments not sent to the preprocessor but that should be part of the
+       // hash.
+       struct args *extra_args_to_hash;
        // Arguments to send to the real compiler.
        struct args *compiler_args;
        MTR_BEGIN("main", "process_args");
-       if (!cc_process_args(orig_args, &preprocessor_args, &compiler_args)) {
+       if (!cc_process_args(
+             orig_args, &preprocessor_args, &extra_args_to_hash, 
&compiler_args)) {
                failed();
        }
        MTR_END("main", "process_args");
@@ -3980,13 +4005,16 @@
        init_hash_debug(
                direct_hash, output_obj, 'd', "DIRECT MODE", debug_text_file);
 
+       struct args *args_to_hash = args_copy(preprocessor_args);
+       args_extend(args_to_hash, extra_args_to_hash);
+
        bool put_object_in_manifest = false;
        struct file_hash *object_hash = NULL;
        struct file_hash *object_hash_from_manifest = NULL;
        if (conf->direct_mode) {
                cc_log("Trying direct lookup");
                MTR_BEGIN("hash", "direct_hash");
-               object_hash = calculate_object_hash(preprocessor_args, 
direct_hash, 1);
+               object_hash = calculate_object_hash(args_to_hash, direct_hash, 
1);
                MTR_END("hash", "direct_hash");
                if (object_hash) {
                        update_cached_result_globals(object_hash);
@@ -4018,7 +4046,7 @@
                        cpp_hash, output_obj, 'p', "PREPROCESSOR MODE", 
debug_text_file);
 
                MTR_BEGIN("hash", "cpp_hash");
-               object_hash = calculate_object_hash(preprocessor_args, 
cpp_hash, 0);
+               object_hash = calculate_object_hash(args_to_hash, cpp_hash, 0);
                MTR_END("hash", "cpp_hash");
                if (!object_hash) {
                        fatal("internal error: object hash from cpp returned 
NULL");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccache-3.7.4/src/ccache.h 
new/ccache-3.7.5/src/ccache.h
--- old/ccache-3.7.4/src/ccache.h       2019-09-12 21:14:51.000000000 +0200
+++ new/ccache-3.7.5/src/ccache.h       2019-10-22 20:51:15.000000000 +0200
@@ -270,8 +270,10 @@
 extern bool output_is_precompiled_header;
 void block_signals(void);
 void unblock_signals(void);
-bool cc_process_args(struct args *args, struct args **preprocessor_args,
-                    struct args **compiler_args);
+bool cc_process_args(struct args *args,
+                     struct args **preprocessor_args,
+                     struct args **extra_args_to_hash,
+                     struct args **compiler_args);
 void cc_reset(void);
 bool is_precompiled_header(const char *path);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccache-3.7.4/src/hashutil.c 
new/ccache-3.7.5/src/hashutil.c
--- old/ccache-3.7.4/src/hashutil.c     2019-09-12 21:14:51.000000000 +0200
+++ new/ccache-3.7.5/src/hashutil.c     2019-10-22 20:51:15.000000000 +0200
@@ -104,13 +104,16 @@
        hash_string_buffer(hash, str, len);
 
        if (result & HASH_SOURCE_CODE_FOUND_DATE) {
+               cc_log("Found __DATE__ in %s", path);
+
                // Make sure that the hash sum changes if the (potential) 
expansion of
                // __DATE__ changes.
                time_t t = time(NULL);
                struct tm now;
-               localtime_r(&t, &now);
-               cc_log("Found __DATE__ in %s", path);
                hash_delimiter(hash, "date");
+               if (!localtime_r(&t, &now)) {
+                       return HASH_SOURCE_CODE_ERROR;
+               }
                hash_int(hash, now.tm_year);
                hash_int(hash, now.tm_mon);
                hash_int(hash, now.tm_mday);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccache-3.7.4/src/manifest.c 
new/ccache-3.7.5/src/manifest.c
--- old/ccache-3.7.4/src/manifest.c     2019-09-12 21:14:51.000000000 +0200
+++ new/ccache-3.7.5/src/manifest.c     2019-10-22 20:51:15.000000000 +0200
@@ -288,7 +288,7 @@
        return mf;
 
 error:
-       if (!errmsg) {
+       if (!*errmsg) {
                *errmsg = x_strdup("Corrupt manifest file");
        }
        free_manifest(mf);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccache-3.7.4/src/util.c new/ccache-3.7.5/src/util.c
--- old/ccache-3.7.4/src/util.c 2019-09-12 21:14:51.000000000 +0200
+++ new/ccache-3.7.5/src/util.c 2019-10-22 20:51:15.000000000 +0200
@@ -1224,8 +1224,14 @@
 localtime_r(const time_t *timep, struct tm *result)
 {
        struct tm *tm = localtime(timep);
-       *result = *tm;
-       return result;
+       if (tm) {
+               *result = *tm;
+               return result;
+       }
+       else {
+               memset(result, 0, sizeof(*result));
+               return NULL;
+       }
 }
 #endif
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccache-3.7.4/src/version.c 
new/ccache-3.7.5/src/version.c
--- old/ccache-3.7.4/src/version.c      2019-09-12 21:14:51.000000000 +0200
+++ new/ccache-3.7.5/src/version.c      2019-10-22 20:51:15.000000000 +0200
@@ -1 +1 @@
-extern const char CCACHE_VERSION[]; const char CCACHE_VERSION[] = "3.7.4";
+extern const char CCACHE_VERSION[]; const char CCACHE_VERSION[] = "3.7.5";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccache-3.7.4/test/suites/base.bash 
new/ccache-3.7.5/test/suites/base.bash
--- old/ccache-3.7.4/test/suites/base.bash      2019-09-12 21:14:51.000000000 
+0200
+++ new/ccache-3.7.5/test/suites/base.bash      2019-10-22 20:51:15.000000000 
+0200
@@ -981,6 +981,26 @@
     expect_stat 'cache miss' 1
 
     # -------------------------------------------------------------------------
+    TEST "Handling of compiler-only arguments"
+
+    $CCACHE_COMPILE -c test1.c
+    expect_stat 'cache hit (preprocessed)' 0
+    expect_stat 'cache miss' 1
+    expect_stat 'files in cache' 1
+
+    $CCACHE_COMPILE -c test1.c
+    expect_stat 'cache hit (preprocessed)' 1
+    expect_stat 'cache miss' 1
+    expect_stat 'files in cache' 1
+
+    # Even though -Werror is not passed to the preprocessor, it should be part
+    # of the hash, so we expect a cache miss:
+    $CCACHE_COMPILE -c -Werror test1.c
+    expect_stat 'cache hit (preprocessed)' 1
+    expect_stat 'cache miss' 2
+    expect_stat 'files in cache' 2
+
+    # -------------------------------------------------------------------------
     TEST "Buggy GCC 6 cpp"
 
     cat >buggy-cpp <<EOF
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ccache-3.7.4/unittest/test_argument_processing.c 
new/ccache-3.7.5/unittest/test_argument_processing.c
--- old/ccache-3.7.4/unittest/test_argument_processing.c        2019-09-12 
21:14:51.000000000 +0200
+++ new/ccache-3.7.5/unittest/test_argument_processing.c        2019-10-22 
20:51:15.000000000 +0200
@@ -68,7 +68,7 @@
        struct args *preprocessed, *compiler;
 
        create_file("foo.c", "");
-       CHECK(!cc_process_args(orig, &preprocessed, &compiler));
+       CHECK(!cc_process_args(orig, &preprocessed, NULL, &compiler));
        CHECK_INT_EQ(1, stats_get_pending(STATS_PREPROCESSING));
 
        args_free(orig);
@@ -80,7 +80,7 @@
        struct args *preprocessed, *compiler;
 
        create_file("foo.c", "");
-       CHECK(!cc_process_args(orig, &preprocessed, &compiler));
+       CHECK(!cc_process_args(orig, &preprocessed, NULL, &compiler));
        CHECK_INT_EQ(1, stats_get_pending(STATS_UNSUPPORTED_OPTION));
 
        args_free(orig);
@@ -98,7 +98,7 @@
        struct args *act_cpp = NULL, *act_cc = NULL;
        create_file("foo.c", "");
 
-       CHECK(cc_process_args(orig, &act_cpp, &act_cc));
+       CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
        CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
        CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
 
@@ -123,7 +123,7 @@
        create_file("foo.c", "");
 
        conf->run_second_cpp = false;
-       CHECK(cc_process_args(orig, &act_cpp, &act_cc));
+       CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
        CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
        CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
 
@@ -149,7 +149,7 @@
        create_file("foo.c", "");
 
        conf->run_second_cpp = true;
-       CHECK(cc_process_args(orig, &act_cpp, &act_cc));
+       CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
        CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
        CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
 
@@ -166,7 +166,52 @@
        struct args *act_cpp = NULL, *act_cc = NULL;
        create_file("foo.c", "");
 
-       CHECK(cc_process_args(orig, &act_cpp, &act_cc));
+       CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
+       CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
+       CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
+
+       args_free(orig);
+}
+
+TEST(MQ_flag_should_not_be_added_for_standard_obj_extension)
+{
+       struct args *orig = args_init_from_string("cc -c -MD foo.c -o foo.o");
+       struct args *exp_cpp = args_init_from_string("cc -MD -MF foo.d");
+       struct args *exp_cc = args_init_from_string("cc -c");
+       struct args *act_cpp = NULL, *act_cc = NULL;
+       create_file("foo.c", "");
+
+       CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
+       CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
+       CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
+
+       args_free(orig);
+}
+
+TEST(MQ_flag_should_be_added_for_non_standard_obj_extension)
+{
+       struct args *orig = args_init_from_string("cc -c -MD foo.c -o foo.obj");
+       struct args *exp_cpp = args_init_from_string("cc -MD -MF foo.d -MQ 
foo.obj");
+       struct args *exp_cc = args_init_from_string("cc -c");
+       struct args *act_cpp = NULL, *act_cc = NULL;
+       create_file("foo.c", "");
+
+       CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
+       CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
+       CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
+
+       args_free(orig);
+}
+
+TEST(equal_sign_after_MF_should_be_removed)
+{
+       struct args *orig = args_init_from_string("cc -c -MF=path foo.c -o 
foo.o");
+       struct args *exp_cpp = args_init_from_string("cc -MFpath");
+       struct args *exp_cc = args_init_from_string("cc -c");
+       struct args *act_cpp = NULL, *act_cc = NULL;
+       create_file("foo.c", "");
+
+       CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
        CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
        CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
 
@@ -188,7 +233,7 @@
        orig = args_init_from_string(arg_string);
        free(arg_string);
 
-       CHECK(cc_process_args(orig, &act_cpp, &act_cc));
+       CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
        CHECK_STR_EQ(act_cpp->argv[1], "--sysroot=./foo/bar");
 
        args_free(orig);
@@ -211,7 +256,7 @@
        orig = args_init_from_string(arg_string);
        free(arg_string);
 
-       CHECK(cc_process_args(orig, &act_cpp, &act_cc));
+       CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
        CHECK_STR_EQ(act_cpp->argv[1], "--sysroot");
        CHECK_STR_EQ(act_cpp->argv[2], "./foo");
 
@@ -230,7 +275,7 @@
        struct args *act_cpp = NULL, *act_cc = NULL;
        create_file("foo.c", "");
 
-       CHECK(cc_process_args(orig, &act_cpp, &act_cc));
+       CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
        CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
        CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
 
@@ -247,7 +292,7 @@
        struct args *act_cpp = NULL, *act_cc = NULL;
        create_file("foo.c", "");
 
-       CHECK(cc_process_args(orig, &act_cpp, &act_cc));
+       CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
        CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
        CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
 
@@ -264,7 +309,7 @@
        struct args *act_cpp = NULL, *act_cc = NULL;
        create_file("foo.c", "");
 
-       CHECK(cc_process_args(orig, &act_cpp, &act_cc));
+       CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
        CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
        CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
 
@@ -281,7 +326,7 @@
        struct args *act_cpp = NULL, *act_cc = NULL;
        create_file("foo.c", "");
 
-       CHECK(cc_process_args(orig, &act_cpp, &act_cc));
+       CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
        CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
        CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
 
@@ -298,7 +343,7 @@
        struct args *act_cpp = NULL, *act_cc = NULL;
        create_file("foo.c", "");
 
-       CHECK(cc_process_args(orig, &act_cpp, &act_cc));
+       CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
        CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
        CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
 
@@ -315,7 +360,7 @@
        struct args *act_cpp = NULL, *act_cc = NULL;
        create_file("foo.c", "");
 
-       CHECK(cc_process_args(orig, &act_cpp, &act_cc));
+       CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
        CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
        CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
 
@@ -332,7 +377,7 @@
        struct args *act_cpp = NULL, *act_cc = NULL;
        create_file("foo.c", "");
 
-       CHECK(cc_process_args(orig, &act_cpp, &act_cc));
+       CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
        CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
        CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
 
@@ -359,7 +404,7 @@
        args_add(exp_cc, "-c");
        free(s);
 
-       CHECK(cc_process_args(orig, &act_cpp, &act_cc));
+       CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
        CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
        CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
 
@@ -378,7 +423,7 @@
 
        create_file("foo.c", "");
 
-       CHECK(cc_process_args(orig, &act_cpp, &act_cc));
+       CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
        CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
        CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
 
@@ -400,7 +445,7 @@
        orig = args_init_from_string(arg_string);
        free(arg_string);
 
-       CHECK(cc_process_args(orig, &act_cpp, &act_cc));
+       CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
        CHECK_STR_EQ("./foo", act_cpp->argv[2]);
 
        args_free(orig);
@@ -426,7 +471,7 @@
        orig = args_init_from_string(arg_string);
        free(arg_string);
 
-       CHECK(cc_process_args(orig, &act_cpp, &act_cc));
+       CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
        CHECK_STR_EQ("-isystem./foo", act_cpp->argv[1]);
 
        free(cwd);
@@ -453,7 +498,7 @@
        orig = args_init_from_string(arg_string);
        free(arg_string);
 
-       CHECK(cc_process_args(orig, &act_cpp, &act_cc));
+       CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
        CHECK_STR_EQ("-I./foo", act_cpp->argv[1]);
 
        free(cwd);
@@ -471,7 +516,7 @@
        struct args *act_cc = NULL;
 
        create_file("foo.c", "");
-       CHECK(cc_process_args(orig, &act_cpp, &act_cc));
+       CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
        CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
        CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
 
@@ -487,7 +532,7 @@
        struct args *act_cc = NULL;
 
        create_file("foo.c", "");
-       CHECK(cc_process_args(orig, &act_cpp, &act_cc));
+       CHECK(cc_process_args(orig, &act_cpp, NULL, &act_cc));
        CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
        CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
 
@@ -499,14 +544,19 @@
        struct args *orig = args_init_from_string(
                "cc -Wa,foo foo.c -g -c -DX -Werror -Xlinker fie -Xlinker,fum 
-Wno-error");
        struct args *exp_cpp = args_init_from_string("cc -g -DX");
+       struct args *exp_extra =
+               args_init_from_string(
+                       " -Wa,foo -Werror -Xlinker fie -Xlinker,fum 
-Wno-error");
        struct args *exp_cc = args_init_from_string(
                "cc -g -Wa,foo -Werror -Xlinker fie -Xlinker,fum -Wno-error -DX 
-c");
        struct args *act_cpp = NULL;
+       struct args *act_extra = NULL;
        struct args *act_cc = NULL;
 
        create_file("foo.c", "");
-       CHECK(cc_process_args(orig, &act_cpp, &act_cc));
+       CHECK(cc_process_args(orig, &act_cpp, &act_extra, &act_cc));
        CHECK_ARGS_EQ_FREE12(exp_cpp, act_cpp);
+       CHECK_ARGS_EQ_FREE12(exp_extra, act_extra);
        CHECK_ARGS_EQ_FREE12(exp_cc, act_cc);
 
        args_free(orig);



Reply via email to