<div dir="ltr">I've disabled part of the test in r210096. <div>Please fix the leak and er-enable it back. </div><div><br></div><div>btw, valgrind agrees with lsan about this leak:</div><div><div> 8,232 (40 direct, 8,192 indirect) bytes in 1 blocks are definitely lost in loss record 9 of 9</div>
<div>    at 0x4C2C9EE: operator new(unsigned long) (vg_replace_malloc.c:319)</div><div>    by 0x1700459: GetOutputStream(clang::CompilerInstance&, llvm::StringRef, clang::BackendAction)</div><div>    by 0x1700EEF: clang::CodeGenAction::CreateASTConsumer(clang::CompilerInstance&, llvm::StringRef)</div>
<div>    by 0x1247C0F: clang::FrontendAction::CreateWrappedASTConsumer(clang::CompilerInstance&, llvm::StringRef)</div><div>    by 0x1248A7A: clang::FrontendAction::BeginSourceFile(clang::CompilerInstance&, clang::FrontendInputFile const&)</div>
<div>    by 0x122970F: clang::CompilerInstance::ExecuteAction(clang::FrontendAction&)</div><div>    by 0x12C5801: clang::ExecuteCompilerInvocation(clang::CompilerInstance*)</div><div>    by 0x6D4487: cc1_main(char const**, char const**, char const*, void*)</div>
<div>    by 0x6AEBEF: main</div></div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jun 3, 2014 at 3:40 PM, Kostya Serebryany <span dir="ltr"><<a href="mailto:kcc@google.com" target="_blank">kcc@google.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Alp, <div><br></div><div>our sanitizer bot started seeing a leak, which is likely related to this change:</div>
<div><a href="http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap/builds/3589/steps/check-clang%20asan/logs/stdio" target="_blank">http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap/builds/3589/steps/check-clang%20asan/logs/stdio</a><br>

</div><div><br></div><div><br></div><div><br></div><div><pre style="font-family:'Courier New',courier,monotype,monospace;color:rgb(0,0,0);font-size:medium"><span>==8553==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 40 byte(s) in 1 object(s) allocated from:
    #0 0x706bc1 in operator new(unsigned long) /home/dtoolsbot/build/sanitizer-x86_64-linux-bootstrap/build/llvm/projects/compiler-rt/lib/asan/asan_new_delete.cc:62
    #1 0x3665288 in GetOutputStream(clang::CompilerInstance&, llvm::StringRef, clang::BackendAction) /home/dtoolsbot/build/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp:571
    #2 0x3663775 in clang::CodeGenAction::CreateASTConsumer(clang::CompilerInstance&, llvm::StringRef) /home/dtoolsbot/build/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp:582
    #3 0x296753d in clang::FrontendAction::CreateWrappedASTConsumer(clang::CompilerInstance&, llvm::StringRef) /home/dtoolsbot/build/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/Frontend/FrontendAction.cpp:138
    #4 0x2969ed1 in clang::FrontendAction::BeginSourceFile(clang::CompilerInstance&, clang::FrontendInputFile const&) /home/dtoolsbot/build/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/Frontend/FrontendAction.cpp:310
    #5 0x28e1120 in clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /home/dtoolsbot/build/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/Frontend/CompilerInstance.cpp:721
    #6 0x2ad1ba4 in clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /home/dtoolsbot/build/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:240
    #7 0x7a8bb5 in cc1_main(char const**, char const**, char const*, void*) /home/dtoolsbot/build/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/tools/driver/cc1_main.cpp:112
    #8 0x7a3b08 in main /home/dtoolsbot/build/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/tools/driver/driver.cpp:318
    #9 0x7fcce7bcfec4 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21ec4)

Indirect leak of 8192 byte(s) in 1 object(s) allocated from:
    #0 0x706d21 in operator new[](unsigned long) /home/dtoolsbot/build/sanitizer-x86_64-linux-bootstrap/build/llvm/projects/compiler-rt/lib/asan/asan_new_delete.cc:64
    #1 0x7b555f in SetBufferSize /home/dtoolsbot/build/sanitizer-x86_64-linux-bootstrap/build/llvm/include/llvm/Support/raw_ostream.h:104
    #2 0x7b555f in llvm::formatted_raw_ostream::releaseStream() /home/dtoolsbot/build/sanitizer-x86_64-linux-bootstrap/build/llvm/include/llvm/Support/FormattedStream.h:161
    #3 0x3670901 in ~formatted_raw_ostream /home/dtoolsbot/build/sanitizer-x86_64-linux-bootstrap/build/llvm/include/llvm/Support/FormattedStream.h:98
    #4 0x3670901 in EmitAssembly /home/dtoolsbot/build/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/CodeGen/BackendUtil.cpp:596
    #5 0x3670901 in clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::raw_ostream*) /home/dtoolsbot/build/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/CodeGen/BackendUtil.cpp:606
    #6 0x36690b2 in clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) /home/dtoolsbot/build/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp:174
    #7 0x454fbd2 in clang::ParseAST(clang::Sema&, bool, bool) /home/dtoolsbot/build/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/Parse/ParseAST.cpp:154
    #8 0x366576f in clang::CodeGenAction::ExecuteAction() /home/dtoolsbot/build/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp:676
    #9 0x296bd7a in clang::FrontendAction::Execute() /home/dtoolsbot/build/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/Frontend/FrontendAction.cpp:415
    #10 0x28e1131 in clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /home/dtoolsbot/build/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/Frontend/CompilerInstance.cpp:722
    #11 0x2ad1ba4 in clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /home/dtoolsbot/build/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:240
    #12 0x7a8bb5 in cc1_main(char const**, char const**, char const*, void*) /home/dtoolsbot/build/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/tools/driver/cc1_main.cpp:112
    #13 0x7a3b08 in main /home/dtoolsbot/build/sanitizer-x86_64-linux-bootstrap/build/llvm/tools/clang/tools/driver/driver.cpp:318
    #14 0x7fcce7bcfec4 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21ec4)

SUMMARY: AddressSanitizer: 8232 byte(s) leaked in 2 allocation(s).

--

********************</span></pre></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jun 3, 2014 at 6:14 AM, Alp Toker <span dir="ltr"><<a href="mailto:alp@nuanti.com" target="_blank">alp@nuanti.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: alp<br>
Date: Mon Jun  2 21:14:20 2014<br>
New Revision: 210059<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=210059&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=210059&view=rev</a><br>
Log:<br>
Fix -emit-codegen-only to not generate binaries<br>
<br>
Added:<br>
    cfe/trunk/test/Frontend/disable-output.c<br>
Modified:<br>
    cfe/trunk/lib/CodeGen/CodeGenAction.cpp<br>
<br>
Modified: cfe/trunk/lib/CodeGen/CodeGenAction.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenAction.cpp?rev=210059&r1=210058&r2=210059&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenAction.cpp?rev=210059&r1=210058&r2=210059&view=diff</a><br>


==============================================================================<br>
--- cfe/trunk/lib/CodeGen/CodeGenAction.cpp (original)<br>
+++ cfe/trunk/lib/CodeGen/CodeGenAction.cpp Mon Jun  2 21:14:20 2014<br>
@@ -568,6 +568,7 @@ static raw_ostream *GetOutputStream(Comp<br>
   case Backend_EmitNothing:<br>
     return nullptr;<br>
   case Backend_EmitMCNull:<br>
+    return new raw_null_ostream();<br>
   case Backend_EmitObj:<br>
     return CI.createDefaultOutputFile(true, InFile, "o");<br>
   }<br>
<br>
Added: cfe/trunk/test/Frontend/disable-output.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Frontend/disable-output.c?rev=210059&view=auto" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Frontend/disable-output.c?rev=210059&view=auto</a><br>


==============================================================================<br>
--- cfe/trunk/test/Frontend/disable-output.c (added)<br>
+++ cfe/trunk/test/Frontend/disable-output.c Mon Jun  2 21:14:20 2014<br>
@@ -0,0 +1,7 @@<br>
+// REQUIRES: x86-registered-target<br>
+// RUN: %clang_cc1 %s -emit-llvm-only -triple=i386-apple-darwin -o %t<br>
+// RUN: not rm %t<br>
+// RUN: %clang_cc1 %s -emit-codegen-only -triple=i386-apple-darwin -o %t<br>
+// RUN: not rm %t<br>
+<br>
+// Test that output is not generated when emission is disabled.<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu" target="_blank">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>