if (IS_ITEMP (op) && !chkTemp)
return 0;
- return IS_VOLATILE(operandType(op));
+ opetype = getSpec (optype = operandType (op));
+
+ if (IS_PTR (optype) && DCL_PTR_VOLATILE (optype))
+ return 1;
+
+ if (IS_VOLATILE (opetype))
+ return 1;
+ return 0;
}
/*-----------------------------------------------------------------*/
ptype->next = type;
-#ifdef JWK
/* if the output class is code */
if ((DCL_TYPE (ptype) = PTR_TYPE (SPEC_OCLS (etype))) == CPOINTER)
DCL_PTR_CONST (ptype) = port->mem.code_ro;
/* the variable was volatile then pointer to volatile */
if (IS_VOLATILE (etype))
DCL_PTR_VOLATILE (ptype) = 1;
-#else
- DCL_TYPE (ptype) = PTR_TYPE (SPEC_OCLS (etype));
-#endif
return ptype;
}
sym_link *optype = operandType (op);
sym_link *opetype = getSpec (optype);
-#ifdef JWK
/* set the pointer depending on the storage class */
if ((DCL_TYPE (optype) = PTR_TYPE (SPEC_OCLS (opetype))) == CPOINTER)
DCL_PTR_CONST (optype) = port->mem.code_ro;
/* the variable was volatile then pointer to volatile */
if (IS_VOLATILE (opetype))
DCL_PTR_VOLATILE (optype) = 1;
-#else
- DCL_TYPE (optype) = PTR_TYPE (SPEC_OCLS (opetype));
-#endif
op->isaddr = 0;
return op;
p = newLink (DECLARATOR);
-#ifdef JWK
/* set the pointer depending on the storage class */
if ((DCL_TYPE (p) = PTR_TYPE (SPEC_OCLS (opetype))) == CPOINTER)
DCL_PTR_CONST (p) = port->mem.code_ro;
if (IS_VOLATILE (opetype))
DCL_PTR_VOLATILE (p) = 1;
-#else
- DCL_TYPE (p) = PTR_TYPE (SPEC_OCLS (opetype));
-#endif
-
p->next = copyLinkChain (optype);
op->isGptr = IS_GENPTR (optype);
+#ifdef JWK
/* if the pointer was declared as a constant */
/* then we cannot allow assignment to the derefed */
if (IS_PTR_CONST (optype))
SPEC_CONST (retype) = 1;
+#endif
op->isaddr = (IS_PTR (rtype) ||
IS_STRUCT (rtype) ||