47 lines
2 KiB
Text
47 lines
2 KiB
Text
$NetBSD: patch-ao,v 1.2 2009/12/17 20:31:37 abs Exp $
|
|
|
|
Since gcc 4, type casts are no longer lvalues.
|
|
|
|
--- src/Burlap/descriptor.h.orig 2000-02-21 22:44:29.000000000 +0000
|
|
+++ src/Burlap/descriptor.h
|
|
@@ -65,6 +65,7 @@
|
|
|
|
# define D_NumTypes (T_External + 1)
|
|
|
|
+# define D_uptr_as(d, Type) (*((Type *) &((d) -> u.ptr)))
|
|
# define D_Type(d) ((d) -> type)
|
|
# define D_Temp(d) ((d) -> temp)
|
|
# define D_Trapped(d) ((d) -> trapped)
|
|
@@ -80,19 +81,19 @@
|
|
# define D_Array(d) ((d) -> u.array)
|
|
# define D_Row(d) ((d) -> u.row)
|
|
# define D_Matrix(d) ((d) -> u.mtx)
|
|
-# define D_MatrixPtr(d) ((Matrix *) (d) -> u.ptr)
|
|
-# define D_Analysis(d) ((Analysis *) (d) -> u.ptr)
|
|
-# define D_Constraint(d) ((Constraint *) (d) -> u.ptr)
|
|
-# define D_Definition(d) ((Definition *) (d) -> u.ptr)
|
|
-# define D_Element(d) ((Element *) (d) -> u.ptr)
|
|
-# define D_Force(d) ((Force *) (d) -> u.ptr)
|
|
-# define D_Load(d) ((Distributed *) (d) -> u.ptr)
|
|
-# define D_Material(d) ((Material *) (d) -> u.ptr)
|
|
-# define D_Node(d) ((Node *) (d) -> u.ptr)
|
|
-# define D_Pair(d) ((Pair *) (d) -> u.ptr)
|
|
-# define D_Problem(d) ((Problem *) (d) -> u.ptr)
|
|
-# define D_Stress(d) ((Stress *) (d) -> u.ptr)
|
|
-# define D_External(d) ((int (**) ( )) (d) -> u.ptr)
|
|
+# define D_MatrixPtr(d) D_uptr_as((d), Matrix *)
|
|
+# define D_Analysis(d) D_uptr_as((d), Analysis *)
|
|
+# define D_Constraint(d) D_uptr_as((d), Constraint *)
|
|
+# define D_Definition(d) D_uptr_as((d), Definition *)
|
|
+# define D_Element(d) D_uptr_as((d), Element *)
|
|
+# define D_Force(d) D_uptr_as((d), Force *)
|
|
+# define D_Load(d) D_uptr_as((d), Distributed *)
|
|
+# define D_Material(d) D_uptr_as((d), Material *)
|
|
+# define D_Node(d) D_uptr_as((d), Node *)
|
|
+# define D_Pair(d) D_uptr_as((d), Pair *)
|
|
+# define D_Problem(d) D_uptr_as((d), Problem *)
|
|
+# define D_Stress(d) D_uptr_as((d), Stress *)
|
|
+# define D_External(d) (*((int (***) ( )) &((d) -> u.ptr)))
|
|
# define D_TypeName(d) (type_names [D_Type (d)])
|
|
# define D_Direct(d) (D_Type (d) == T_Analysis || \
|
|
D_Type (d) == T_Problem || D_Type (d) == T_Pair)
|