------- Comment #1 from burnus at gcc dot gnu dot org  2009-08-11 19:06 -------
The following patch is needed to initialize the variables; however, it does not
solve the actual problem - here, we only make the checks tighter.

For some reason, the LHS seems to be 0 all the time while the RHS gets a random
value. In gfc_add_ext_attribute, everything seems to be still OK.

--- expr.c      (revision 150651)
+++ expr.c      (working copy)
@@ -3195,2 +3195 @@ gfc_check_pointer_assign (gfc_expr *lval
-         symbol_attribute cdecl, stdcall, fastcall;
-         unsigned calls;
+         symbol_attribute calls;
@@ -3198,4 +3197,4 @@ gfc_check_pointer_assign (gfc_expr *lval
-         gfc_add_ext_attribute (&cdecl, EXT_ATTR_CDECL, NULL);
-         gfc_add_ext_attribute (&stdcall, EXT_ATTR_STDCALL, NULL);
-         gfc_add_ext_attribute (&fastcall, EXT_ATTR_FASTCALL, NULL);
-         calls = cdecl.ext_attr | stdcall.ext_attr | fastcall.ext_attr;
+         calls.ext_attr = 0;
+         gfc_add_ext_attribute (&calls, EXT_ATTR_CDECL, NULL);
+         gfc_add_ext_attribute (&calls, EXT_ATTR_STDCALL, NULL);
+         gfc_add_ext_attribute (&calls, EXT_ATTR_FASTCALL, NULL);


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41034

Reply via email to