<div dir="ltr">Reverted in 891b2be85d5f8b271c7440b51f7d463fb3e75007 due to ASan failure:  <a href="http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/44915" target="_blank">http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/44915</a><div><br></div><div><pre style="font-family:"Courier New",courier,monotype,monospace;color:rgb(0,0,0);font-size:medium"><span>FAIL: LLVM :: Bitcode/thinlto-function-summary-paramaccess.ll (6675 of 38879)
******************** TEST 'LLVM :: Bitcode/thinlto-function-summary-paramaccess.ll' FAILED ********************
Script:
--
: 'RUN: at line 4';   /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/opt -S -passes="print<stack-safety-local>" -disable-output < /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll 2>&1 | /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/FileCheck /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll --check-prefixes=SSI
: 'RUN: at line 6';   /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/opt -module-summary /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll -o /b/sanitizer-x86_64-linux-fast</span><span>/build/llvm_build_asan/test/Bitcode/Output/thinlto-function-summary-paramaccess.ll.tmp.bc
</span><span>: 'RUN: at line 7';   /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/llvm-bcanalyzer -dump /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/test/Bitcode/Output/thinlto-function-summary-paramaccess.ll.tmp.bc | /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/FileCheck /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll -check-prefixes=BC
: 'RUN: at line 9';   /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/opt -module-summary /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Bitcode/Inputs/thinlto-function-summary-paramaccess.ll -o /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/test/Bitcode/Output/thinlto-function-summary-paramaccess.ll.tmp2.bc
: 'RUN: at line 11';   /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/llvm-lto -thinlto -o /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/test/Bitcode/Output/thinlto-function-summary-paramaccess.ll.tmp /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/test/Bitcode/Output/thinlto-function-summary-paramaccess.ll.tmp.bc /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/test/Bitcode/Output/thinlto-function-summary-paramaccess.ll.tmp2.bc
: 'RUN: at line 13';   /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/llvm-dis -o - /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/test/Bitcode/Output/thinlto-function-summary-paramaccess.ll.tmp.thinlto.bc | /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/FileCheck /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll --check-prefix=DCO
: 'RUN: at line 15';   /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/llvm-dis -o - /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/test/Bitcode/Output/thinlto-function-summary-paramaccess.ll.tmp.thinlto.bc | /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/llvm-as -o - | /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/llvm-dis -o - | /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/FileCheck /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll --check-prefix=DCO
: 'RUN: at line 17';   /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/llvm-bcanalyzer -dump /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/test/Bitcode/Output/thinlto-function-summary-paramaccess.ll.tmp.thinlto.bc | /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/FileCheck /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll --check-prefix=COMBINED
: 'RUN: at line 19';   /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/llvm-dis -o - /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/test/Bitcode/Output/thinlto-function-summary-paramaccess.ll.tmp.bc | /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/FileCheck /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll --check-prefix=DIS
: 'RUN: at line 21';   /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/llvm-dis -o - /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/test/Bitcode/Output/thinlto-function-summary-paramaccess.ll.tmp.bc | /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/llvm-as -o - | /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/llvm-dis -o - | /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/FileCheck /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll --check-prefix=DIS
: 'RUN: at line 23';   /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/opt -thinlto-bc /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll -o /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/test/Bitcode/Output/thinlto-function-summary-paramaccess.ll.tmp.bc
: 'RUN: at line 24';   /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/llvm-bcanalyzer -dump /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/test/Bitcode/Output/thinlto-function-summary-paramaccess.ll.tmp.bc | /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/FileCheck /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll -check-prefixes=BC
: 'RUN: at line 26';   /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/llvm-dis -o - /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/test/Bitcode/Output/thinlto-function-summary-paramaccess.ll.tmp.bc | /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/FileCheck /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll --check-prefix=DIS
: 'RUN: at line 28';   /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/llvm-dis -o - /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/test/Bitcode/Output/thinlto-function-summary-paramaccess.ll.tmp.bc | /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/llvm-as -o - | /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/llvm-dis -o - | /b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/FileCheck /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll --check-prefix=DIS
--
Exit Code: 1

Command Output (stderr):
--
=================================================================
==58783==ERROR: AddressSanitizer: container-overflow on address 0x606000016008 at pc 0x000004738cf5 bp 0x7ffd1a6fc850 sp 0x7ffd1a6fc848
READ of size 8 at 0x606000016008 thread T0
    #0 0x4738cf4 in llvm::StackSafetyInfo::getParamAccesses() const /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Analysis/StackSafetyAnalysis.cpp:816:5
    #1 0x453cb01 in computeFunctionSummary(llvm::ModuleSummaryIndex&, llvm::Module const&, llvm::Function const&, llvm::BlockFrequencyInfo*, llvm::ProfileSummaryInfo*, llvm::DominatorTree&, bool, llvm::DenseSet<unsigned long, llvm::DenseMapInfo<unsigned long> >&, bool, std::__1::function<llvm::StackSafetyInfo const* (llvm::Function const&)>) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp:475:26
    #2 0x4533558 in llvm::buildModuleSummaryIndex(llvm::Module const&, std::__1::function<llvm::BlockFrequencyInfo* (llvm::Function const&)>, llvm::ProfileSummaryInfo*, std::__1::function<llvm::StackSafetyInfo const* (llvm::Function const&)>) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp:763:5
    #3 0x45423b8 in llvm::ModuleSummaryIndexWrapperPass::runOnModule(llvm::Module&) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp:884:17
    #4 0x5ad22dd in runOnModule /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1702:27
    #5 0x5ad22dd in llvm::legacy::PassManagerImpl::run(llvm::Module&) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:614:44
    #6 0xa8bd7e in main /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/tools/opt/opt.cpp:1001:12
    #7 0x7fafefae509a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
    #8 0x9a0d09 in _start (/b/sanitizer-x86_64-linux-fast/build/llvm_build_asan/bin/opt+0x9a0d09)

0x606000016008 is located 40 bytes inside of 64-byte region [0x606000015fe0,0x606000016020)
allocated by thread T0 here:
    #0 0xa4530d in operator new(unsigned long) /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/lib/asan/asan_new_delete.cpp:99:3
    #1 0x475499c in __libcpp_allocate /b/sanitizer-x86_64-linux-fast/build/libcxx_build_asan/include/c++/v1/new:253:10
    #2 0x475499c in allocate /b/sanitizer-x86_64-linux-fast/build/libcxx_build_asan/include/c++/v1/memory:1789:34
    #3 0x475499c in allocate /b/sanitizer-x86_64-linux-fast/build/libcxx_build_asan/include/c++/v1/memory:1525:21
    #4 0x475499c in __split_buffer /b/sanitizer-x86_64-linux-fast/build/libcxx_build_asan/include/c++/v1/__split_buffer:318:29
    #5 0x475499c in void std::__1::vector<llvm::FunctionSummary::ParamAccess, std::__1::allocator<llvm::FunctionSummary::ParamAccess> >::__emplace_back_slow_path<unsigned int const&, llvm::ConstantRange const&>(unsigned int const&, llvm::ConstantRange const&) /b/sanitizer-x86_64-linux-fast/build/libcxx_build_asan/include/c++/v1/vector:1668:49
    #6 0x473821a in emplace_back<const unsigned int &, const llvm::ConstantRange &> /b/sanitizer-x86_64-linux-fast/build/libcxx_build_asan/include/c++/v1/vector:1690:9
    #7 0x473821a in llvm::StackSafetyInfo::getParamAccesses() const /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Analysis/StackSafetyAnalysis.cpp:800:19
    #8 0x453cb01 in computeFunctionSummary(llvm::ModuleSummaryIndex&, llvm::Module const&, llvm::Function const&, llvm::BlockFrequencyInfo*, llvm::ProfileSummaryInfo*, llvm::DominatorTree&, bool, llvm::DenseSet<unsigned long, llvm::DenseMapInfo<unsigned long> >&, bool, std::__1::function<llvm::StackSafetyInfo const* (llvm::Function const&)>) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp:475:26
    #9 0x4533558 in llvm::buildModuleSummaryIndex(llvm::Module const&, std::__1::function<llvm::BlockFrequencyInfo* (llvm::Function const&)>, llvm::ProfileSummaryInfo*, std::__1::function<llvm::StackSafetyInfo const* (llvm::Function const&)>) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp:763:5
    #10 0x45423b8 in llvm::ModuleSummaryIndexWrapperPass::runOnModule(llvm::Module&) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp:884:17
    #11 0x5ad22dd in runOnModule /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1702:27
    #12 0x5ad22dd in llvm::legacy::PassManagerImpl::run(llvm::Module&) /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:614:44
    #13 0xa8bd7e in ma</span><span>in /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/tools/opt/opt.cpp:1001:12
</span><span>    #14 0x7fafefae509a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)

HINT: if you don't care about these errors you may set ASAN_OPTIONS=detect_container_overflow=0.
If you suspect a false positive see also: <a href="https://github.com/google/sanitizers/wiki/AddressSanitizerContainerOverflow" target="_blank">https://github.com/google/sanitizers/wiki/AddressSanitizerContainerOverflow</a>.
SUMMARY: AddressSanitizer: container-overflow /b/sanitizer-x86_64-linux-fast/build/llvm-project/llvm/lib/Analysis/StackSafetyAnalysis.cpp:816:5 in llvm::StackSafetyInfo::getParamAccesses() const
Shadow bytes around the buggy address:
  0x0c0c7fffabb0: fa fa fa fa 00 00 00 00 00 00 00 fa fa fa fa fa
  0x0c0c7fffabc0: 00 00 00 00 00 00 00 fa fa fa fa fa fd fd fd fd
  0x0c0c7fffabd0: fd fd fd fd fa fa fa fa fd fd fd fd fd fd fd fa
  0x0c0c7fffabe0: fa fa fa fa fd fd fd fd fd fd fd fd fa fa fa fa
  0x0c0c7fffabf0: 00 00 00 00 00 00 00 fa fa fa fa fa fc fc fc fc
=>0x0c0c7fffac00: fc[fc]fc fc fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c0c7fffac10: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c0c7fffac20: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c0c7fffac30: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c0c7fffac40: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c0c7fffac50: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07 
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
  Shadow gap:              cc
==58783==ABORTING

--</span></pre></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Aug 14, 2020 at 4:19 AM Vitaly Buka via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
Author: Vitaly Buka<br>
Date: 2020-08-14T04:19:10-07:00<br>
New Revision: 0426e28419799c35cf52fe3d773c5bab9928c699<br>
<br>
URL: <a href="https://github.com/llvm/llvm-project/commit/0426e28419799c35cf52fe3d773c5bab9928c699" rel="noreferrer" target="_blank">https://github.com/llvm/llvm-project/commit/0426e28419799c35cf52fe3d773c5bab9928c699</a><br>
DIFF: <a href="https://github.com/llvm/llvm-project/commit/0426e28419799c35cf52fe3d773c5bab9928c699.diff" rel="noreferrer" target="_blank">https://github.com/llvm/llvm-project/commit/0426e28419799c35cf52fe3d773c5bab9928c699.diff</a><br>
<br>
LOG: [NFC][StackSafety] Move out sort from the loop<br>
<br>
Added: <br>
<br>
<br>
Modified: <br>
    llvm/lib/Analysis/StackSafetyAnalysis.cpp<br>
    llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll<br>
<br>
Removed: <br>
<br>
<br>
<br>
################################################################################<br>
diff  --git a/llvm/lib/Analysis/StackSafetyAnalysis.cpp b/llvm/lib/Analysis/StackSafetyAnalysis.cpp<br>
index 0baf0c2d54b2..15488c3f18d0 100644<br>
--- a/llvm/lib/Analysis/StackSafetyAnalysis.cpp<br>
+++ b/llvm/lib/Analysis/StackSafetyAnalysis.cpp<br>
@@ -812,11 +812,11 @@ StackSafetyInfo::getParamAccesses() const {<br>
       }<br>
       Param.Calls.emplace_back(C.first.ParamNo, C.first.Callee->getGUID(),<br>
                                C.second);<br>
-      llvm::sort(Param.Calls, [](const FunctionSummary::ParamAccess::Call &L,<br>
-                                 const FunctionSummary::ParamAccess::Call &R) {<br>
-        return std::tie(L.ParamNo, L.Callee) < std::tie(R.ParamNo, R.Callee);<br>
-      });<br>
     }<br>
+    sort(Param.Calls, [](const FunctionSummary::ParamAccess::Call &L,<br>
+                         const FunctionSummary::ParamAccess::Call &R) {<br>
+      return std::tie(L.ParamNo, L.Callee) < std::tie(R.ParamNo, R.Callee);<br>
+    });<br>
   }<br>
   return ParamAccesses;<br>
 }<br>
<br>
diff  --git a/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll b/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll<br>
index 1757173ec52b..6351133ce3d0 100644<br>
--- a/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll<br>
+++ b/llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll<br>
@@ -230,7 +230,7 @@ entry:<br>
 }<br>
<br>
 ; SSI-LABEL: for function 'CallMany2'<br>
-; SSI: p[]: empty-set, @Callee(arg0, [-715,125))<br>
+; SSI: p[]: empty-set, @Callee(arg0, [-715,125)), @Callee2(arg1, [-33,-32))<br>
 ; BC-NEXT: <PARAM_ACCESS op0=0 op1=0 op2=0 op3=2 op4=0 op5=[[CALLEE]] op6=1431 op7=250 op8=1 op9=[[CALLEE2:-?[0-9]+]] op10=67 op11=65/><br>
 ; BC-NEXT: <PERMODULE<br>
 ; DIS-DAG: = gv: (name: "CallMany2", summaries: {{.*}} calls: ((callee: ^{{.*}}), (callee: ^{{.*}})), params: ((param: 0, offset: [0, -1], calls: ((callee: ^{{.*}}, param: 0, offset: [-715, 124]), (callee: ^{{.*}}, param: 1, offset: [-33, -33]))))))) ; guid = 16654048340802466690<br>
<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div>