diff options
| author | Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net> | 2018-09-19 17:54:01 +0000 |
|---|---|---|
| committer | Andrea Di Biagio <Andrea_DiBiagio@sn.scee.net> | 2018-09-19 17:54:01 +0000 |
| commit | c33b2e6d0f84125c77fad2fe715f9c4a35ad19de (patch) | |
| tree | 0c14d28de5d59ee8a95edd0a66058c81defb1871 /llvm/utils | |
| parent | 7dca3127c2ad98c3f5a291d8f4878348772bb558 (diff) | |
| download | bcm5719-llvm-c33b2e6d0f84125c77fad2fe715f9c4a35ad19de.tar.gz bcm5719-llvm-c33b2e6d0f84125c77fad2fe715f9c4a35ad19de.zip | |
Attempt to unbreak buidlbot lld-x86_64-darwin13 after r342555.
The reason why build #25777 might have failed is because the SmallVector move
constructor is _not_ noexcept, and the stl implementation used by that buildbot
calls _VSTD::move_if_noexcept() (according to the backtrace).
OpcodeInfo has a default move constructor, and the copy constructor is deleted.
However, as far as I can see, SmallVector doesn't declare a noexcept move
constructor. So, what I believe it is happening here is that,
_VSTD::move_if_noexcept() returns an lvalue reference and not an rvalue
reference.
This eventually triggers a copy that fails to compile.
Hopefully, using a std::vector instead of SmallVector (as it was originally
suggested by Simon in the code review) should be enough to unbreak the buildbot.
llvm-svn: 342561
Diffstat (limited to 'llvm/utils')
| -rw-r--r-- | llvm/utils/TableGen/CodeGenSchedule.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/utils/TableGen/CodeGenSchedule.h b/llvm/utils/TableGen/CodeGenSchedule.h index ef2b32c37c4..3ed753c8ffe 100644 --- a/llvm/utils/TableGen/CodeGenSchedule.h +++ b/llvm/utils/TableGen/CodeGenSchedule.h @@ -322,7 +322,7 @@ struct PredicateInfo { /// There is at least one OpcodeInfo object for every opcode specified by a /// TIPredicate definition. class OpcodeInfo { - llvm::SmallVector<PredicateInfo, 8> Predicates; + std::vector<PredicateInfo> Predicates; OpcodeInfo(const OpcodeInfo &Other) = delete; OpcodeInfo &operator=(const OpcodeInfo &Other) = delete; |

