[cfe-commits] r162440 - /cfe/trunk/lib/CodeGen/CGBuiltin.cpp

Eli Friedman eli.friedman at gmail.com
Thu Aug 23 04:27:56 PDT 2012


Author: efriedma
Date: Thu Aug 23 06:27:56 2012
New Revision: 162440

URL: http://llvm.org/viewvc/llvm-project?rev=162440&view=rev
Log:
Attempt to fix clang bootstrap (broken by r162425).


Modified:
    cfe/trunk/lib/CodeGen/CGBuiltin.cpp

Modified: cfe/trunk/lib/CodeGen/CGBuiltin.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGBuiltin.cpp?rev=162440&r1=162439&r2=162440&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/CGBuiltin.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGBuiltin.cpp Thu Aug 23 06:27:56 2012
@@ -1486,13 +1486,33 @@
       return Ptr;
     } else if (ICE->getCastKind() == CK_ArrayToPointerDecay) {
       LValue LV = EmitLValue(ICE->getSubExpr());
-      return std::make_pair(LV.getAddress(), LV.getAlignment().getQuantity());
+      unsigned Align = LV.getAlignment().getQuantity();
+      if (!Align) {
+        // FIXME: Once LValues are fixed to always set alignment,
+        // zap this code.
+        QualType PtTy = ICE->getSubExpr()->getType();
+        if (!PtTy->isIncompleteType())
+          Align = getContext().getTypeAlignInChars(PtTy).getQuantity();
+        else
+          Align = 1;
+      }
+      return std::make_pair(LV.getAddress(), Align);
     }
   }
   if (const UnaryOperator *UO = dyn_cast<UnaryOperator>(Addr)) {
     if (UO->getOpcode() == UO_AddrOf) {
       LValue LV = EmitLValue(UO->getSubExpr());
-      return std::make_pair(LV.getAddress(), LV.getAlignment().getQuantity());
+      unsigned Align = LV.getAlignment().getQuantity();
+      if (!Align) {
+        // FIXME: Once LValues are fixed to always set alignment,
+        // zap this code.
+        QualType PtTy = UO->getSubExpr()->getType();
+        if (!PtTy->isIncompleteType())
+          Align = getContext().getTypeAlignInChars(PtTy).getQuantity();
+        else
+          Align = 1;
+      }
+      return std::make_pair(LV.getAddress(), Align);
     }
   }
 





More information about the cfe-commits mailing list