-
Notifications
You must be signed in to change notification settings - Fork 15.2k
Description
| Bugzilla Link | 44767 |
| Resolution | FIXED |
| Resolved on | Feb 06, 2020 02:26 |
| Version | unspecified |
| OS | All |
| Blocks | #43900 |
| CC | @zmodem,@jpienaar,@River707 |
Extended Description
While building 10.0.0 rc1 for FreeBSD on 32-bit x86 (aka i386-freebsd), I got the following compile error in mlir:
/home/dim/llvm/10.0.0/rc1/llvm-project/mlir/lib/Transforms/DialectConversion.cpp:787:67: error: non-constant-expression cannot be narrowed from type 'unsigned int' to 'Region::iterator::difference_type' (aka 'int') in initializer list [-Wc++11-narrowing]
blockActions.push_back(BlockAction::getMove(&block, {®ion, position}));
^~~~~~~~
/home/dim/llvm/10.0.0/rc1/llvm-project/mlir/lib/Transforms/DialectConversion.cpp:787:67: note: insert an explicit cast to silence this issue
blockActions.push_back(BlockAction::getMove(&block, {®ion, position}));
^~~~~~~~
static_cast<difference_type>( )
1 error generated.
This is because BlockPosition::position is not of type 'unsigned', but 'Region::iterator::difference_type'.
Likely fix:
diff --git a/mlir/lib/Transforms/DialectConversion.cpp b/mlir/lib/Transforms/DialectConversion.cpp
index 3f202c2a95b..bf79266dc8b 100644
--- a/mlir/lib/Transforms/DialectConversion.cpp
+++ b/mlir/lib/Transforms/DialectConversion.cpp
@@ -783,7 +783,7 @@ void ConversionPatternRewriterImpl::notifyRegionIsBeingInlinedBefore(
Region ®ion, Region &parent, Region::iterator before) {
for (auto &pair : llvm::enumerate(region)) {
Block &block = pair.value();
- unsigned position = pair.index();
- Region::iterator::difference_type position = pair.index();
blockActions.push_back(BlockAction::getMove(&block, {®ion, position}));
}
}