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.  */