diff --git a/llvm/lib/IR/DataLayout.cpp b/llvm/lib/IR/DataLayout.cpp index 7df867279b229f53c0a59337ff8541557a537811..7de41faac4f03c980be172beb438e69d6997867f 100644 --- a/llvm/lib/IR/DataLayout.cpp +++ b/llvm/lib/IR/DataLayout.cpp @@ -207,9 +207,10 @@ static std::pair split(StringRef Str, char Separator) { /// Get an unsigned integer, including error checks. static unsigned getInt(StringRef R) { - unsigned Result = 0; + unsigned Result; bool error = R.getAsInteger(10, Result); (void)error; - assert(!error && "not a number, or does not fit in an unsigned int"); + if (error) + report_fatal_error("not a number, or does not fit in an unsigned int"); return Result; } diff --git a/llvm/test/Assembler/getInt.ll b/llvm/test/Assembler/getInt.ll new file mode 100644 index 0000000000000000000000000000000000000000..1363f4019674bd84424da23046f63f2eebe0386a --- /dev/null +++ b/llvm/test/Assembler/getInt.ll @@ -0,0 +1,4 @@ +; RUN: opt < %s +; XFAIL: * + +target datalayout = "p:4294967296:64:64"