<html>
    <head>
      <base href="http://llvm.org/bugs/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - save-temps in gcc can take an argument"
   href="http://llvm.org/bugs/show_bug.cgi?id=17421">17421</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>save-temps in gcc can take an argument
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>clang
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>3.2
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Driver
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedclangbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>rkotler@mips.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvmbugs@cs.uiuc.edu
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>save-temps does not accept an argument in clang.

-save-temps=cwd
Store the usual “temporary” intermediate files permanently; place them in the
current directory and name them based on the source file. Thus, compiling foo.c
with -c -save-temps produces files foo.i and foo.s, as well as foo.o. This
creates a preprocessed foo.i output file even though the compiler now normally
uses an integrated preprocessor.
When used in combination with the -x command-line option, -save-temps is
sensible enough to avoid over writing an input source file with the same
extension as an intermediate file. The corresponding intermediate file may be
obtained by renaming the source file before using -save-temps.

If you invoke GCC in parallel, compiling several different source files that
share a common base name in different subdirectories or the same source file
compiled for multiple output destinations, it is likely that the different
parallel compilers will interfere with each other, and overwrite the temporary
files. For instance:

          gcc -save-temps -o outdir1/foo.o indir1/foo.c&
          gcc -save-temps -o outdir2/foo.o indir2/foo.c&
may result in foo.i and foo.o being written to simultaneously by both
compilers. 

-save-temps=obj
Store the usual “temporary” intermediate files permanently. If the -o option is
used, the temporary files are based on the object file. If the -o option is not
used, the -save-temps=obj switch behaves like -save-temps.
For example:

          gcc -save-temps=obj -c foo.c
          gcc -save-temps=obj -c bar.c -o dir/xbar.o
          gcc -save-temps=obj foobar.c -o dir2/yfoobar
creates foo.i, foo.s, dir/xbar.i, dir/xbar.s, dir2/yfoobar.i, dir2/yfoobar.s,
and dir2/yfoobar.o.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>