[llvm-commits] [llvm-gcc-4.2] r45270 - /llvm-gcc-4.2/trunk/gcc/llvm-types.cpp
Dale Johannesen
dalej at apple.com
Thu Dec 20 14:52:10 PST 2007
Author: johannes
Date: Thu Dec 20 16:52:10 2007
New Revision: 45270
URL: http://llvm.org/viewvc/llvm-project?rev=45270&view=rev
Log:
Assume unsized types do not have the same size in gcc and llvm.
Modified:
llvm-gcc-4.2/trunk/gcc/llvm-types.cpp
Modified: llvm-gcc-4.2/trunk/gcc/llvm-types.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-types.cpp?rev=45270&r1=45269&r2=45270&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/llvm-types.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/llvm-types.cpp Thu Dec 20 16:52:10 2007
@@ -295,7 +295,7 @@
/// isSequentialCompatible - Return true if the specified gcc array or pointer
/// type and the corresponding LLVM SequentialType lay out their components
-/// identically in memory.
+/// identically in memory. We assume that objects without a known size do not.
bool isSequentialCompatible(tree_node *type) {
assert((TREE_CODE(type) == ARRAY_TYPE ||
TREE_CODE(type) == POINTER_TYPE ||
@@ -303,7 +303,7 @@
// This relies on gcc types with constant size mapping to LLVM types with the
// same size. It is possible for the component type not to have a size:
// struct foo; extern foo bar[];
- return !TYPE_SIZE(TREE_TYPE(type)) ||
+ return TYPE_SIZE(TREE_TYPE(type)) &&
isInt64(TYPE_SIZE(TREE_TYPE(type)), true);
}
More information about the llvm-commits
mailing list