<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div><br></div>Hi Alexey,<div><br></div><div>The fix is check in at r174093.</div><div><br></div><div>Thanks,</div><div>Manman</div><div><br><div><div>On Jan 31, 2013, at 12:05 AM, Alexey Samsonov <<a href="mailto:samsonov@google.com">samsonov@google.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr">Hi Manman!<div><br></div><div style="">Sorry, I had to revert this in r174048.</div><div style="">With this patch Clang crashes when compiling googletest sources with "-g -O2". See the error report:</div>
<div style=""><br></div><div style=""><div>$ ./bin/clang++ -O2 -g /usr/local/google/llvm/utils/unittest/googletest/gtest-all.cc -I /usr/local/google/llvm/utils/unittest/googletest/include -I /usr/local/google/llvm/include -I /usr/local/google/llvm_build_clang/include -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -c -o gtest.o</div>
<div>function-local metadata used in wrong function</div><div>metadata !{%"class.std::vector.14"* %array_}</div><div>  %array_ = getelementptr inbounds %"class.testing::TestPartResultArray"* %this, i64 0, i32 0, !dbg !29957</div>
<div>Broken module found, compilation aborted!</div><div>0  clang-3.3       0x0000000001133a45 llvm::sys::PrintStackTrace(_IO_FILE*) + 37</div><div>1  clang-3.3       0x0000000001133f33</div><div>2  libpthread.so.0 0x00007f209a219cb0</div>
<div>3  libc.so.6       0x00007f209966f425 gsignal + 53</div><div>4  libc.so.6       0x00007f2099672b8b abort + 379</div><div>5  clang-3.3       0x000000000109382e</div><div>6  clang-3.3       0x0000000001093526</div><div>
7  clang-3.3       0x000000000107c3cc llvm::FPPassManager::runOnFunction(llvm::Function&) + 364</div><div>8  clang-3.3       0x000000000107c63b llvm::FPPassManager::runOnModule(llvm::Module&) + 43</div><div>9  clang-3.3       0x000000000107c98e llvm::MPPassManager::runOnModule(llvm::Module&) + 430</div>
<div>10 clang-3.3       0x000000000107d02b llvm::PassManagerImpl::run(llvm::Module&) + 539</div><div>11 clang-3.3       0x000000000107d19a llvm::PassManager::run(llvm::Module&) + 10</div><div>12 clang-3.3       0x0000000001150757 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::Module*, clang::BackendAction, llvm::raw_ostream*) + 5799</div>
<div>13 clang-3.3       0x000000000114db6b</div><div>14 clang-3.3       0x00000000013b5753 clang::ParseAST(clang::Sema&, bool, bool) + 515</div><div>15 clang-3.3       0x000000000114cd6c clang::CodeGenAction::ExecuteAction() + 540</div>
<div>16 clang-3.3       0x000000000130ec01 clang::FrontendAction::Execute() + 113</div><div>17 clang-3.3       0x00000000012f1e8d clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 909</div><div>18 clang-3.3       0x0000000001136775 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 2901</div>
<div>19 clang-3.3       0x0000000000631a63 cc1_main(char const**, char const**, char const*, void*) + 675</div><div>20 clang-3.3       0x000000000062e494 main + 3140</div><div>21 libc.so.6       0x00007f209965a76d __libc_start_main + 237</div>
<div>22 clang-3.3       0x000000000062d725</div><div>Stack dump:</div><div>0.<span class="" style="white-space:pre">     </span>Program arguments: /usr/local/google/llvm_build_clang/bin/clang-3.3 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -disable-free -main-file-name gtest-all.cc -mrelocation-model static -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -target-cpu x86-64 -momit-leaf-frame-pointer -g -coverage-file /usr/local/google/llvm_build_clang/gtest.o -resource-dir /usr/local/google/llvm_build_clang/bin/../lib/clang/3.3 -D __STDC_LIMIT_MACROS -D __STDC_CONSTANT_MACROS -I /usr/local/google/llvm/utils/unittest/googletest/include -I /usr/local/google/llvm/include -I /usr/local/google/llvm_build_clang/include -fmodule-cache-path /var/tmp/clang-module-cache -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../include/c++/4.6 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../include/c++/4.6/x86_64-linux-gnu -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../include/c++/4.6/backward -internal-isystem /usr/local/include -internal-isystem /usr/local/google/llvm_build_clang/bin/../lib/clang/3.3/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -O2 -fdeprecated-macro -fdebug-compilation-dir /usr/local/google/llvm_build_clang -ferror-limit 19 -fmessage-length 212 -mstackrealign -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -fcolor-diagnostics -backend-option -vectorize-loops -o gtest.o -x c++ /usr/local/google/llvm/utils/unittest/googletest/gtest-all.cc </div>
<div>1.<span class="" style="white-space:pre">  </span><eof> parser at end of file</div><div>2.<span class="" style="white-space:pre">        </span>Code generation</div><div>3.<span class="" style="white-space:pre">  </span>Running pass 'Function Pass Manager' on module '/usr/local/google/llvm/utils/unittest/googletest/gtest-all.cc'.</div>
<div>4.<span class="" style="white-space:pre">  </span>Running pass 'Module Verifier' on function '@_ZN7testing32ScopedFakeTestPartResultReporter20ReportTestPartResultERKNS_14TestPartResultE'</div><div>clang-3: error: unable to execute command: Aborted (core dumped)</div>
<div>clang-3: error: clang frontend command failed due to signal (use -v to see invocation)</div><div>clang version 3.3 (trunk 174045)</div><div>Target: x86_64-unknown-linux-gnu</div><div>Thread model: posix</div><div>clang-3: note: diagnostic msg: PLEASE submit a bug report to <a href="http://llvm.org/bugs/">http://llvm.org/bugs/</a> and include the crash backtrace, preprocessed source, and associated run script.</div>
<div>clang-3: note: diagnostic msg: </div><div>********************</div><div><br></div><div>PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:</div><div>Preprocessed source(s) and associated run script(s) are located at:</div>
<div>clang-3: note: diagnostic msg: /tmp/gtest-all-Wfnt12.cpp</div><div>clang-3: note: diagnostic msg: /tmp/gtest-all-Wfnt12.sh</div><div>clang-3: note: diagnostic msg: </div><div><br></div><div>********************</div>
<div><br></div><div style="">Attaching the the compilation shell script.</div></div><div style=""><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Jan 30, 2013 at 9:44 PM, Manman Ren <span dir="ltr"><<a href="mailto:mren@apple.com" target="_blank">mren@apple.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Hi all,<br>
<br>
Since I got no response on this patch and we need this patch soon, I committed at r173946.<br>
If you have any concern about this patch, please review after commit.<br>
<br>
Thanks,<br>
Manman<br>
<div class="HOEnZb"><div class="h5"><br>
On Jan 29, 2013, at 2:01 PM, Manman Ren <<a href="mailto:mren@apple.com">mren@apple.com</a>> wrote:<br>
<br>
><br>
> ping<br>
><br>
> Thanks,<br>
> Manman<br>
><br>
> On Jan 28, 2013, at 3:21 PM, Manman Ren <<a href="mailto:mren@apple.com">mren@apple.com</a>> wrote:<br>
><br>
>><br>
>> Hello,<br>
>><br>
>> Given source IR:<br>
>> call void @llvm.dbg.declare(metadata !{i32* %argc.addr}, metadata !14), !dbg !15<br>
>> we used to generate<br>
>> call void @llvm.dbg.declare(metadata !27, metadata !28), !dbg !29<br>
>> !27 = metadata !{null}<br>
>><br>
>> With this patch, we will generate<br>
>> call void @llvm.dbg.declare(metadata !{i32* %argc.addr}, metadata !27), !dbg !28<br>
>><br>
>> Looking up %argc.addr in ValueMap will return null. Since %argc.addr is already<br>
>> correctly set up, we can use identity mapping.<br>
>><br>
>> Please review,<br>
>><br>
>> Thanks,<br>
>> Manman<br>
>><br>
>> <linker.patch>_______________________________________________<br>
>> llvm-commits mailing list<br>
>> <a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
>> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
><br>
> _______________________________________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div>Alexey Samsonov, MSK</div>
</div>
<span><bug.sh></span></blockquote></div><br></div></body></html>