Started 1 mo 7 days ago
Took 1 hr 12 min on green-dragon-19

Failed Build rL:365959 - C:365956 - #57949 (Jul 12, 2019 2:34:57 PM)

Revisions
  • http://llvm.org/svn/llvm-project/llvm/trunk : 365959
  • http://llvm.org/svn/llvm-project/cfe/trunk : 365956
  • http://llvm.org/svn/llvm-project/compiler-rt/trunk : 365957
  • http://llvm.org/svn/llvm-project/debuginfo-tests/trunk : 364589
  • http://llvm.org/svn/llvm-project/zorg/trunk : 365596
  • http://llvm.org/svn/llvm-project/libcxx/trunk : 365960
  • http://llvm.org/svn/llvm-project/clang-tools-extra/trunk : 365955
Changes
  1. Add option to disable variant narrowing conversion changes.

    The paper P0608R3 - "A sane variant converting constructor" disallows
    narrowing conversions in variant. It was meant to address this
    surprising problem:

      std::variant<std::string, bool> v = "abc";
      assert(v.index() == 1); // constructs a bool.

    However, it also disables every potentially narrowing conversion. For
    example:

      variant<unsigned> v = 0; // ill-formed
      variant<string, double> v2 = 42; // ill-formed (int -> double narrows)

    These latter changes break code. A lot of code. Within Google it broke
    on the order of a hundred thousand target with thousands of root causes
    responsible for the breakages.

    Of the breakages related to the narrowing restrictions, none of them
    exposed outstanding bugs. However, the breakages caused by boolean
    conversions (~13 root causes), all but one of them were bugs.

    For this reasons, I am adding a flag to disable the narrowing conversion
    changes but not the boolean conversions one.

    One purpose of this flag is to allow users to opt-out of breaking changes
    in variant until the offending code can be cleaned up. For non-trivial
    variant usages the amount of cleanup may be significant.

    This flag is also required to support automated tooling, such as
    clang-tidy, that can automatically fix code broken by this change.
    In order for clang-tidy to know the correct alternative to construct,
    it must know what alternative was being constructed previously, which
    means running it over the old version of std::variant.

    Because this change breaks so much code, I will be implementing the
    aforementioned clang-tidy check in the very near future.

    Additionally I'm plan present this new information to the committee so they can
    re-consider if this is a breaking change we want to make.

    I think libc++ should very seriously consider pulling this change
    before the 9.0 release branch is cut. But that's a separate discussion
    that I will start on the lists.

    For now this is the minimal first step. (detail/ViewSVN)
    by ericwf
  2. [InstCombine] Disable fold from D64285 for non-integer types (detail/ViewSVN)
    by xbolva00
  3. Factor out resolveFrameOffsetReference (NFC).

    Split AArch64FrameLowering::resolveFrameIndexReference in two parts
    * Finding frame offset for the index.
    * Finding base register and offset to that register.

    The second part will be used to implement a virtual frame pointer in
    armv8.5 MTE stack instrumentation lowering.

    Reviewers: pcc, vitalybuka, hctim, ostannard

    Subscribers: javed.absar, kristof.beyls, hiraditya, llvm-commits

    Tags: #llvm

    Differential Revision: https://reviews.llvm.org/D64171 (detail/ViewSVN)
    by eugenis

Started by an SCM change (2 times)

This run spent:

  • 17 min waiting;
  • 1 hr 12 min build duration;
  • 1 hr 29 min total from scheduled to completion.
LLVM/Clang Warnings: 2 warnings.
Test Result (2 failures / +1)

Identified problems

Regression test failed

This build failed because a regression test in the test suite FAILed. See the test report for details.
Indication 1

Ninja target failed

Below is a link to the first failed ninja target.
Indication 2

Compile Error

This build failed because of a compile error. Below is a list of all errors in the build log:
Indication 3