summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorNicolai Haehnle <nhaehnle@gmail.com>2018-08-23 08:02:02 +0000
committerNicolai Haehnle <nhaehnle@gmail.com>2018-08-23 08:02:02 +0000
commitba9eee5fadf1114d5ed422ce80dca50099057933 (patch)
tree39fd8fa37ad8ec4d327a6f48b2056560c736ee6e /llvm
parentdaab25b8fd793324e800ea25c1eb936335dcea88 (diff)
downloadbcm5719-llvm-ba9eee5fadf1114d5ed422ce80dca50099057933.tar.gz
bcm5719-llvm-ba9eee5fadf1114d5ed422ce80dca50099057933.zip
TableGen/SearchableTables: Cast enums to unsigned in generated code
Summary: This should fix signedness warnings when compiling with MSVC. Change-Id: I4664cce0ba91e9b42d21a86fd4a7e82f2320c451 Reviewers: RKSimon Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D51097 llvm-svn: 340518
Diffstat (limited to 'llvm')
-rw-r--r--llvm/utils/TableGen/SearchableTableEmitter.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/llvm/utils/TableGen/SearchableTableEmitter.cpp b/llvm/utils/TableGen/SearchableTableEmitter.cpp
index 664de2217e9..61c918bd014 100644
--- a/llvm/utils/TableGen/SearchableTableEmitter.cpp
+++ b/llvm/utils/TableGen/SearchableTableEmitter.cpp
@@ -430,6 +430,15 @@ void SearchableTableEmitter::emitLookupFunction(const GenericTable &Table,
<< ").compare(RHS." << Field.Name << ");\n";
OS << " if (Cmp" << Field.Name << " < 0) return true;\n";
OS << " if (Cmp" << Field.Name << " > 0) return false;\n";
+ } else if (Field.Enum) {
+ // Explicitly cast to unsigned, because the signedness of enums is
+ // compiler-dependent.
+ OS << " if ((unsigned)LHS." << Field.Name << " < (unsigned)RHS."
+ << Field.Name << ")\n";
+ OS << " return true;\n";
+ OS << " if ((unsigned)LHS." << Field.Name << " > (unsigned)RHS."
+ << Field.Name << ")\n";
+ OS << " return false;\n";
} else {
OS << " if (LHS." << Field.Name << " < RHS." << Field.Name << ")\n";
OS << " return true;\n";
OpenPOWER on IntegriCloud