[all-commits] [llvm/llvm-project] e150d2: [update_cc_test_checks.py] Add test for D84511

Alexander Richardson via All-commits all-commits at lists.llvm.org
Thu Aug 6 01:17:37 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: e150d2cab8688a2b3b7d395bfbbc152b08df9033
      https://github.com/llvm/llvm-project/commit/e150d2cab8688a2b3b7d395bfbbc152b08df9033
  Author: Alex Richardson <Alexander.Richardson at cl.cam.ac.uk>
  Date:   2020-08-06 (Thu, 06 Aug 2020)

  Changed paths:
    M clang/test/utils/update_cc_test_checks/basic-cplusplus.test
    M clang/test/utils/update_cc_test_checks/lit.local.cfg

  Log Message:
  -----------
  [update_cc_test_checks.py] Add test for D84511

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D85115


  Commit: 8803ebcf3b562172687321318c423f39f22b2e5b
      https://github.com/llvm/llvm-project/commit/8803ebcf3b562172687321318c423f39f22b2e5b
  Author: Alex Richardson <Alexander.Richardson at cl.cam.ac.uk>
  Date:   2020-08-06 (Thu, 06 Aug 2020)

  Changed paths:
    M compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
    A compiler-rt/test/sanitizer_common/TestCases/Posix/recursion-in-qsort.cpp

  Log Message:
  -----------
  Fix qsort() interceptor for FreeBSD

When the FreeBSD qsort() implementation recurses, it does so using an
interposable function call, so we end up calling the interceptor again
and set the saved comparator to wrapped_qsort_compar. This results in an
infinite loop and a eventually a stack overflow since wrapped_qsort_compar
ends up calling itself. This means that ASAN is completely broken on
FreeBSD for programs that call qsort(). I found this while running
check-all on a FreeBSD system a ASAN-instrumented LLVM.

Fix this by checking whether we are recursing inside qsort before writing
to qsort_compar. The same bug exists in the qsort_r interceptor, so use the
same approach there. I did not test the latter since the qsort_r function
signature does not match and therefore it's not intercepted on FreeBSD/macOS.

Fixes https://llvm.org/PR46832

Reviewed By: eugenis

Differential Revision: https://reviews.llvm.org/D84509


  Commit: 3b3cdcc7a557a7dbd53e9e8cc311247d6df46c5c
      https://github.com/llvm/llvm-project/commit/3b3cdcc7a557a7dbd53e9e8cc311247d6df46c5c
  Author: Alex Richardson <Alexander.Richardson at cl.cam.ac.uk>
  Date:   2020-08-06 (Thu, 06 Aug 2020)

  Changed paths:
    M llvm/utils/lit/lit/reports.py
    A llvm/utils/lit/tests/Inputs/shtest-format/external_shell/fail_with_control_chars.txt
    A llvm/utils/lit/tests/Inputs/shtest-format/external_shell/write-control-chars.py
    M llvm/utils/lit/tests/shtest-format.py

  Log Message:
  -----------
  [lit] Remove ANSI control characters from xunit output

Failing test output sometimes contains control characters like \x1b (e.g.
if there was some -fcolor-diagnostics output) which are not allowed inside
XML files. This causes problems with CI systems: for example, the Jenkins
JUnit XML will throw an exception when ecountering those characters and
similar problems also occur with GitLab CI.

Reviewed By: yln, jdenny

Differential Revision: https://reviews.llvm.org/D84233


  Commit: 6148cca70888ead020a808279043fd013ca72a2a
      https://github.com/llvm/llvm-project/commit/6148cca70888ead020a808279043fd013ca72a2a
  Author: Alex Richardson <Alexander.Richardson at cl.cam.ac.uk>
  Date:   2020-08-06 (Thu, 06 Aug 2020)

  Changed paths:
    M compiler-rt/lib/sanitizer_common/sanitizer_posix.cpp

  Log Message:
  -----------
  [compiler-rt] Fix build of Sanitizer-Test_Nolibc after D80648

Running ninja check-sanitizer fails for after that patch (commit
058f5f6fd813d1ee1480497394d6fd44e65ec62b) with the following error:

libRTSanitizerCommon.test.nolibc.x86_64.a(sanitizer_posix.cpp.o): In
function `__sanitizer::GetNamedMappingFd(char const*, unsigned long,
int*)':
..../llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_posix.cpp:358:
undefined reference to `fcntl'
clang-12: error: linker command failed with exit code 1 (use -v to see
invocation)

This patch works around the problem by only calling fcntl if O_CLOEXEC
is not defined.

Reviewed By: plopresti

Differential Revision: https://reviews.llvm.org/D85114


Compare: https://github.com/llvm/llvm-project/compare/216ad2da74f0...6148cca70888


More information about the All-commits mailing list