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;
}
/*-----------------------------------------------------------------*/
return type;
etype = getSpec (type);
- ptype = newLink ();
+ ptype = newLink (DECLARATOR);
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;
/* return op; */
/* } */
- p = newLink ();
- p->class = DECLARATOR;
+ 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);
- /* 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;
-
op->isaddr = (IS_PTR (rtype) ||
IS_STRUCT (rtype) ||
IS_INT (rtype) ||