[llvm-commits] [llvm-gcc] Patch needed?

Chris Lattner clattner at apple.com
Sun Feb 18 11:57:21 PST 2007


On Feb 18, 2007, at 12:03 AM, Reid Spencer wrote:

> Hi,
>
> I found a situation where the following patch is needed. Building
> llvm-gcc head (with cummulative patch) fails with SEGV while compiling
> the libstdc++. This patch is a bandaid and I don't know if its the
> correct thing or not as TYPE_SIZE(Type) should probably not be  
> null, but
> it is.
>
> You can probably replicate this by doing a clean llvm-gcc build
> including the latest patches.

Very strange, maybe it just hasn't hit the mirror yet, but mainline  
already has that:

bool isPassedByInvisibleReference(tree Type) {
   // FIXME: Search for TREE_ADDRESSABLE in calls.c, and see if there  
are other
   // cases that make arguments automatically passed in by reference.
   return TREE_ADDRESSABLE(Type) || TREE_CODE(TYPE_SIZE(Type)) !=  
INTEGER_CST;
}

-Chris

> Reid.
>
> Index: llvm-types.cpp
> ===================================================================
> --- llvm-types.cpp      (revision 276)
> +++ llvm-types.cpp      (working copy)
> @@ -58,7 +58,7 @@
>  // refined and replaced by another LLVM Type. This is achieved by
> maintaining
>  // a map.
>
> -// Collection of LLVM Types and their names
> +// Collection of LLVM Types
>  static std::vector<const Type *> LTypes;
>  typedef DenseMap<const Type *, unsigned> LTypesMapTy;
>  static LTypesMapTy LTypesMap;
> @@ -212,7 +212,8 @@
>  bool isPassedByInvisibleReference(tree Type) {
>    // FIXME: Search for TREE_ADDRESSABLE in calls.c, and see if there
> are other
>    // cases that make arguments automatically passed in by reference.
> -  return TREE_ADDRESSABLE(Type);
> +  return TREE_ADDRESSABLE(Type) ||
> +         (TYPE_SIZE(Type) && TREE_CODE(TYPE_SIZE(Type)) !=
> INTEGER_CST);
>  }
>
>  /// GetTypeName - Return a fully qualified (with namespace prefixes)
> name for
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list