[cfe-commits] r61305 - /cfe/trunk/lib/CodeGen/CGExprScalar.cpp

Anders Carlsson andersca at mac.com
Sat Dec 20 19:48:06 PST 2008


Author: andersca
Date: Sat Dec 20 21:48:05 2008
New Revision: 61305

URL: http://llvm.org/viewvc/llvm-project?rev=61305&view=rev
Log:
Implement alignof for vla types.

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

Modified: cfe/trunk/lib/CodeGen/CGExprScalar.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExprScalar.cpp?rev=61305&r1=61304&r2=61305&view=diff

==============================================================================
--- cfe/trunk/lib/CodeGen/CGExprScalar.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGExprScalar.cpp Sat Dec 20 21:48:05 2008
@@ -670,8 +670,13 @@
       }
       return CGF.GetVLASize(VAT);
     }
-    // FIXME: This should be an UNSUPPORTED error.
-    assert(0 && "alignof VLAs not implemented yet");
+    
+    // alignof
+    QualType BaseType = CGF.getContext().getBaseElementType(VAT);
+    uint64_t Align = CGF.getContext().getTypeAlign(BaseType);
+
+    Align /= 8;  // Return alignment in bytes, not bits.
+    return llvm::ConstantInt::get(llvm::APInt(ResultWidth, Align));
   }
   
   std::pair<uint64_t, unsigned> Info = CGF.getContext().getTypeInfo(TypeToSize);





More information about the cfe-commits mailing list