Allow for null TYPE_SIZE_UNIT. Fixes 5847737.
llvm-svn: 49537
diff --git a/llvm-gcc-4.2/gcc/config/rs6000/rs6000.c b/llvm-gcc-4.2/gcc/config/rs6000/rs6000.c
index f882ffc..a0421b4 100644
--- a/llvm-gcc-4.2/gcc/config/rs6000/rs6000.c
+++ b/llvm-gcc-4.2/gcc/config/rs6000/rs6000.c
@@ -4898,7 +4898,7 @@
static bool
rs6000_return_in_memory (tree type, tree fntype ATTRIBUTE_UNUSED)
{
- /* LLVM LOCAL begin strcut return check */
+ /* LLVM LOCAL begin struct return check */
/* FIXME darwin ppc64 often returns structs partly in memory and partly
in regs. The binary interface of return_in_memory (which does the
work for aggregate_value_p) is not a good match for this; in fact
@@ -4906,10 +4906,11 @@
means aggregate_value_p is not useful on this target for this purpose.
This is a big nasty longterm problem. For now put things back the
way they used to be (wrong, but fewer crashes). */
- if (TARGET_64BIT && TREE_CODE(TYPE_SIZE_UNIT(type)) == INTEGER_CST &&
+ if (TARGET_64BIT && TYPE_SIZE_UNIT(type) &&
+ TREE_CODE(TYPE_SIZE_UNIT(type)) == INTEGER_CST &&
TREE_INT_CST_LOW(TYPE_SIZE_UNIT(type)) > 8)
return true;
- /* LLVM LOCAL end strcut return check */
+ /* LLVM LOCAL end struct return check */
/* In the darwin64 abi, try to use registers for larger structs
if possible. */