be converted to pointer-to-function and an array to pointer-to-member resp.
git-svn-id: svn://svn.cc65.org/cc65/trunk@3977
b7a2c559-68d2-44c3-8de9-
860c34a00d81
-Type* ArrayToPtr (const Type* T)
+Type* ArrayToPtr (Type* T)
/* Convert an array to a pointer to it's first element */
{
- /* Function must only be called for an array */
- CHECK (IsTypeArray (T));
-
/* Return pointer to first element */
- return PointerTo (T + 1);
+ return PointerTo (GetElementType (T));
}
* return T.
*/
{
- if (IsTypeFunc (T) || IsTypeArray (T)) {
+ if (IsTypeFunc (T)) {
return PointerTo (T);
+ } else if (IsTypeArray (T)) {
+ return ArrayToPtr (T);
} else {
return T;
}
* given type points to.
*/
-Type* ArrayToPtr (const Type* T);
+Type* ArrayToPtr (Type* T);
/* Convert an array to a pointer to it's first element */
#if defined(HAVE_INLINE)
{
return (GetClass (T) == T_CLASS_STRUCT);
}
-#else
+#else
# define IsClassStruct(T) (GetClass (T) == T_CLASS_STRUCT)
#endif
ED_TestDone (Expr);
}
}
+
+ /* Do standard pointer conversions since the expression is now in the
+ * primary.
+ */
+ Expr->Type = PtrConversion (Expr->Type);
}