1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-01-31 12:41:49 +01:00

Teach DataLayout that zero-byte pointer sizes don't make sense.

Previously this would result in assertion failures or simply crashes
at various points in the optimizer when trying to create types of zero
bit width.

llvm-svn: 230936
This commit is contained in:
Owen Anderson 2015-03-02 06:00:02 +00:00
parent 39b32da21b
commit 22efff3c98
2 changed files with 8 additions and 0 deletions

View File

@ -259,6 +259,8 @@ void DataLayout::parseSpecifier(StringRef Desc) {
"Missing size specification for pointer in datalayout string");
Split = split(Rest, ':');
unsigned PointerMemSize = inBytes(getInt(Tok));
if (!PointerMemSize)
report_fatal_error("Invalid pointer size of 0 bytes");
// ABI alignment.
if (Rest.empty())

View File

@ -0,0 +1,6 @@
; RUN: not llvm-as < %s 2>&1 | FileCheck %s
target datalayout = "p:0:32:32"
; CHECK: Invalid pointer size of 0 bytes