-@@ -2653,8 +2653,8 @@
- !input->nod_arg[e_fld_id] && !input->nod_arg[e_fld_stream])
- --field_id;
- else
-- field_id = (USHORT) input->nod_arg[e_fld_id];
-- stream = (USHORT) input->nod_arg[e_fld_stream];
-+ field_id = (USHORT)(IPTR) input->nod_arg[e_fld_id];
-+ stream = (USHORT)(IPTR) input->nod_arg[e_fld_stream];
- if (remap_fld) {
- JRD_REL relation;
- JRD_FLD field;
-@@ -2662,7 +2662,7 @@
- relation = (*csb)->csb_rpt[stream].csb_relation;
- field = MET_get_field(relation, field_id);
- if (field->fld_source)
-- field_id = (USHORT) field->fld_source->nod_arg[e_fld_id];
-+ field_id = (USHORT)(IPTR) field->fld_source->nod_arg[e_fld_id];
- }
- if (remap)
- stream = remap[stream];
-@@ -2773,7 +2773,7 @@
- node->nod_type = input->nod_type;
- node->nod_count = 0;
-
-- stream = (USHORT) input->nod_arg[e_rel_stream];
-+ stream = (USHORT)(IPTR) input->nod_arg[e_rel_stream];
- /**
- Last entry in the remap contains the the original stream number.
- Get that stream number so that the flags can be copied
-@@ -2853,7 +2853,7 @@
- node->nod_arg[e_prc_inputs] =
- copy(tdbb, csb, input->nod_arg[e_prc_inputs], remap, field_id,
- node->nod_arg[e_prc_in_msg], remap_fld);
-- stream = (USHORT) input->nod_arg[e_prc_stream];
-+ stream = (USHORT)(IPTR) input->nod_arg[e_prc_stream];
- new_stream = (*csb)->csb_n_stream++;
- node->nod_arg[e_prc_stream] = (JRD_NOD) (SLONG) new_stream;
- /* TMN: Here we should really have the following assert */
-@@ -2863,7 +2863,7 @@
- element = CMP_csb_element(csb, new_stream);
- // SKIDDER: Maybe we need to check if we really found a procedure ?
- element->csb_procedure = MET_lookup_procedure_id(tdbb,
-- (SSHORT)node->nod_arg[e_prc_procedure],FALSE,FALSE,0);
-+ (SSHORT)(IPTR)node->nod_arg[e_prc_procedure],FALSE,FALSE,0);
-
- (*csb)->csb_rpt[new_stream].csb_flags |=
- (*csb)->csb_rpt[stream].csb_flags & csb_no_dbkey;
-@@ -2876,7 +2876,7 @@
- node = PAR_make_node(tdbb, e_agg_length);
- node->nod_type = input->nod_type;
- node->nod_count = 0;
-- stream = (USHORT) input->nod_arg[e_agg_stream];
-+ stream = (USHORT)(IPTR) input->nod_arg[e_agg_stream];
- assert(stream <= MAX_STREAMS);
- new_stream = (*csb)->csb_n_stream++;
- assert(new_stream <= MAX_STREAMS);
-@@ -2905,7 +2905,7 @@
- node = PAR_make_node(tdbb, e_uni_length);
- node->nod_type = input->nod_type;
- node->nod_count = 2;
-- stream = (USHORT) input->nod_arg[e_uni_stream];
-+ stream = (USHORT)(IPTR) input->nod_arg[e_uni_stream];
- new_stream = (*csb)->csb_n_stream++;
- node->nod_arg[e_uni_stream] = (JRD_NOD) (SLONG) new_stream;
- /* TMN: Here we should really have the following assert */
-@@ -3043,7 +3043,7 @@
- csb_repeat *tail;
- JRD_REL relation;
-
-- stream = (USHORT) node->nod_arg[e_rel_stream];
-+ stream = (USHORT)(IPTR) node->nod_arg[e_rel_stream];
- csb->csb_rpt[stream].csb_flags |= csb_no_dbkey;
- tail = &csb->csb_rpt[stream];
- if ( (relation = tail->csb_relation) )
-@@ -3271,7 +3271,7 @@
- JRD_FLD field;
- UCHAR *map, local_map[MAP_LENGTH];
-
-- stream = (USHORT) node->nod_arg[e_fld_stream];
-+ stream = (USHORT)(IPTR) node->nod_arg[e_fld_stream];
-
- /* Look at all rse's which are lower in scope than the rse which this field
- is referencing, and mark them as varying -- the rule is that if a field
-@@ -3292,7 +3292,7 @@
- if (!(relation = tail->csb_relation) ||
- !(field =
- MET_get_field(relation,
-- (USHORT) node->nod_arg[e_fld_id]))) break;
-+ (USHORT)(IPTR) node->nod_arg[e_fld_id]))) break;
-
- /* if this is a modify or store, check REFERENCES access to any foreign keys. */
-
-@@ -3404,9 +3404,9 @@
-
- sub = node->nod_arg[e_asgn_from];
- if (sub->nod_type == nod_field) {
-- stream = (USHORT) sub->nod_arg[e_fld_stream];
-+ stream = (USHORT)(IPTR) sub->nod_arg[e_fld_stream];
- field = MET_get_field((*csb)->csb_rpt[stream].csb_relation,
-- (USHORT) sub->nod_arg[e_fld_id]);
-+ (USHORT)(IPTR) sub->nod_arg[e_fld_id]);
- if (field)
- node->nod_arg[e_asgn_missing2] = field->fld_missing_value;
- }
-@@ -3414,12 +3414,12 @@
- sub = node->nod_arg[e_asgn_to];
- if (sub->nod_type != nod_field)
- break;
-- stream = (USHORT) sub->nod_arg[e_fld_stream];
-+ stream = (USHORT)(IPTR) sub->nod_arg[e_fld_stream];
- tail = &(*csb)->csb_rpt[stream];
- if (!
- (field =
- MET_get_field(tail->csb_relation,
-- (USHORT) sub->nod_arg[e_fld_id]))) break;
-+ (USHORT)(IPTR) sub->nod_arg[e_fld_id]))) break;
- if (field->fld_missing_value) {
- node->nod_arg[e_asgn_missing] = field->fld_missing_value;
- node->nod_count = 3;
-@@ -3433,7 +3433,7 @@
- break;
-
- case nod_modify:
-- stream = (USHORT) node->nod_arg[e_mod_new_stream];
-+ stream = (USHORT)(IPTR) node->nod_arg[e_mod_new_stream];
- tail = &(*csb)->csb_rpt[stream];
- tail->csb_flags |= csb_modify;
- pass1_modify(tdbb, csb, node);
-@@ -3441,13 +3441,13 @@
- /* assert(node->nod_arg [e_mod_new_stream] <= MAX_USHORT); */
- if ( (node->nod_arg[e_mod_validate] =
- make_validation(tdbb, csb,
-- (USHORT) node->
-+ (USHORT)(IPTR) node->
- nod_arg[e_mod_new_stream])) ) node->nod_count =
- MAX(node->nod_count, (USHORT) e_mod_validate + 1);
- break;
-
- case nod_erase:
-- stream = (USHORT) node->nod_arg[e_erase_stream];
-+ stream = (USHORT)(IPTR) node->nod_arg[e_erase_stream];
- tail = &(*csb)->csb_rpt[stream];
- tail->csb_flags |= csb_erase;
- pass1_erase(tdbb, csb, node);
-@@ -3463,12 +3463,12 @@
-
- case nod_store:
- sub = node->nod_arg[e_sto_relation];
-- stream = (USHORT) sub->nod_arg[e_rel_stream];
-+ stream = (USHORT)(IPTR) sub->nod_arg[e_rel_stream];
- tail = &(*csb)->csb_rpt[stream];
- tail->csb_flags |= csb_store;
- sub = pass1_store(tdbb, csb, node);
- if (sub) {
-- stream = (USHORT) sub->nod_arg[e_rel_stream];
-+ stream = (USHORT)(IPTR) sub->nod_arg[e_rel_stream];
- if ((!node->nod_arg[e_sto_sub_store]) &&
- (node->nod_arg[e_sto_validate] =
- make_validation(tdbb, csb, stream))) node->nod_count =
-@@ -3495,7 +3495,7 @@
-
- case nod_aggregate:
- assert((int)node->nod_arg[e_agg_stream] <= MAX_STREAMS);
-- (*csb)->csb_rpt[(USHORT) node->nod_arg[e_agg_stream]].csb_flags |=
-+ (*csb)->csb_rpt[(USHORT)(IPTR) node->nod_arg[e_agg_stream]].csb_flags |=
- csb_no_dbkey;
- ignore_dbkey(tdbb, *csb, (RSE) node->nod_arg[e_agg_rse], view);
- node->nod_arg[e_agg_rse] =
-@@ -3523,7 +3523,7 @@
- NOD_T type;
-
- type = node->nod_type;
-- stream = (USHORT) node->nod_arg[0];
-+ stream = (USHORT)(IPTR) node->nod_arg[0];
-
- if (!(*csb)->csb_rpt[stream].csb_map)
- return node;
-@@ -3558,7 +3558,7 @@
- break;
-
- case nod_cardinality:
-- stream = (USHORT) node->nod_arg[e_card_stream];
-+ stream = (USHORT)(IPTR) node->nod_arg[e_card_stream];
- (*csb)->csb_rpt[stream].csb_flags |= csb_compute;
- break;
-
-@@ -3625,7 +3625,7 @@
- /* To support views of views, loop until we hit a real relation */
-
- for (;;) {
-- stream = new_stream = (USHORT) node->nod_arg[e_erase_stream];
-+ stream = new_stream = (USHORT)(IPTR) node->nod_arg[e_erase_stream];
- tail = &(*csb)->csb_rpt[stream];
- tail->csb_flags |= csb_erase;
- relation = (*csb)->csb_rpt[stream].csb_relation;
-@@ -3693,7 +3693,7 @@
-
- parent = relation;
- parent_stream = stream;
-- new_stream = (USHORT) source->nod_arg[e_rel_stream];
-+ new_stream = (USHORT)(IPTR) source->nod_arg[e_rel_stream];
- node->nod_arg[e_erase_stream] = (JRD_NOD) (SLONG) map[new_stream];
- }
- }
-@@ -3740,7 +3740,7 @@
- field = MET_get_field(relation, id);
- if (field->fld_source)
- new_id =
-- (USHORT) (JRD_NOD) (field->fld_source)->nod_arg[e_fld_id];
-+ (USHORT)(IPTR) (JRD_NOD) (field->fld_source)->nod_arg[e_fld_id];
- else
- new_id = id;
- }
-@@ -3802,8 +3802,8 @@
- /* To support views of views, loop until we hit a real relation */
-
- for (;;) {
-- stream = (USHORT) node->nod_arg[e_mod_org_stream];
-- new_stream = (USHORT) node->nod_arg[e_mod_new_stream];
-+ stream = (USHORT)(IPTR) node->nod_arg[e_mod_org_stream];
-+ new_stream = (USHORT)(IPTR) node->nod_arg[e_mod_new_stream];
- tail = &(*csb)->csb_rpt[new_stream];
- tail->csb_flags |= csb_modify;
- relation = (*csb)->csb_rpt[stream].csb_relation;
-@@ -3842,7 +3842,7 @@
- node->nod_count =
- MAX(node->nod_count, (USHORT) e_mod_map_view + 1);
- map = (*csb)->csb_rpt[stream].csb_map;
-- stream = (USHORT) source->nod_arg[e_rel_stream];
-+ stream = (USHORT)(IPTR) source->nod_arg[e_rel_stream];
- stream = map[stream];
- view_stream = new_stream;
-
-@@ -3850,18 +3850,18 @@
-
- map =
- alloc_map(tdbb, csb,
-- (SSHORT) node->nod_arg[e_mod_new_stream]);
-+ (SSHORT)(IPTR) node->nod_arg[e_mod_new_stream]);
- source = copy(tdbb, csb, source, map, 0, NULL, FALSE);
- /* TMN: Here we should really have the following assert */
- /* assert(source->nod_arg [e_rel_stream] <= MAX_UCHAR); */
-- map[new_stream] = (UCHAR) source->nod_arg[e_rel_stream];
-+ map[new_stream] = (UCHAR)(IPTR) source->nod_arg[e_rel_stream];
- view_node = copy(tdbb, csb, node, map, 0, NULL, TRUE);
- view_node->nod_arg[e_mod_org_stream] = (JRD_NOD) (SLONG) stream;
- view_node->nod_arg[e_mod_new_stream] =
- source->nod_arg[e_rel_stream];
- view_node->nod_arg[e_mod_map_view] = NULL;
- node->nod_arg[e_mod_sub_mod] = view_node;
-- new_stream = (USHORT) source->nod_arg[e_rel_stream];
-+ new_stream = (USHORT)(IPTR) source->nod_arg[e_rel_stream];
- view_node->nod_arg[e_mod_statement] =
- pass1_expand_view(tdbb, *csb, view_stream, new_stream, TRUE);
- node->nod_count =
-@@ -3874,14 +3874,14 @@
- /* View passes muster -- do some translation. Start with source stream */
-
- map = (*csb)->csb_rpt[stream].csb_map;
-- stream = (USHORT) source->nod_arg[e_rel_stream];
-+ stream = (USHORT)(IPTR) source->nod_arg[e_rel_stream];
- node->nod_arg[e_mod_org_stream] = (JRD_NOD) (SLONG) map[stream];
-
- /* Next, do update stream */
-
- map =
- alloc_map(tdbb, csb,
-- (SSHORT) node->nod_arg[e_mod_new_stream]);
-+ (SSHORT)(IPTR) node->nod_arg[e_mod_new_stream]);
- source = copy(tdbb, csb, source, map, 0, NULL, FALSE);
- node->nod_arg[e_mod_new_stream] = source->nod_arg[e_rel_stream];
- }
-@@ -4128,7 +4128,7 @@
-
- pass1(tdbb, csb, source, parent_view, view_stream, FALSE);
- procedure = MET_lookup_procedure_id(tdbb,
-- (SSHORT)source->nod_arg[e_prc_procedure], FALSE, FALSE, 0);
-+ (SSHORT)(IPTR)source->nod_arg[e_prc_procedure], FALSE, FALSE, 0);
- post_procedure_access(tdbb, *csb, procedure);
- CMP_post_resource(&(*csb)->csb_resources, (BLK) procedure,
- Resource::rsc_procedure, procedure->prc_id);
-@@ -4160,7 +4160,7 @@
- view->rel_id);
- source->nod_arg[e_rel_view] = (JRD_NOD) parent_view;
-
-- stream = (USHORT) source->nod_arg[e_rel_stream];
-+ stream = (USHORT)(IPTR) source->nod_arg[e_rel_stream];
- element = CMP_csb_element(csb, stream);
- element->csb_view = parent_view;
- /* TMN: Here we should really have the following assert */
-@@ -4175,7 +4175,7 @@
- for (vcx_ptr = &parent_view->rel_view_contexts; *vcx_ptr;
- vcx_ptr = &(*vcx_ptr)->vcx_next)
- if ((*vcx_ptr)->vcx_context ==
-- (USHORT) source->nod_arg[e_rel_context]) {
-+ (USHORT)(IPTR) source->nod_arg[e_rel_context]) {
- element->csb_alias = (*vcx_ptr)->vcx_context_name;
- break;
- }
-@@ -4319,7 +4319,7 @@
-
- for (;;) {
- original = node->nod_arg[e_sto_relation];
-- stream = (USHORT) original->nod_arg[e_rel_stream];
-+ stream = (USHORT)(IPTR) original->nod_arg[e_rel_stream];
- tail = &(*csb)->csb_rpt[stream];
- tail->csb_flags |= csb_store;
- relation = (*csb)->csb_rpt[stream].csb_relation;
-@@ -4373,7 +4373,7 @@
- node->nod_arg[e_sto_relation] =
- copy(tdbb, csb, source, map, 0, NULL, FALSE);
- new_stream =
-- (USHORT) node->nod_arg[e_sto_relation]->nod_arg[e_rel_stream];
-+ (USHORT)(IPTR) node->nod_arg[e_sto_relation]->nod_arg[e_rel_stream];
- node->nod_arg[e_sto_statement] =
- pass1_expand_view(tdbb, *csb, stream, new_stream, TRUE);
- node->nod_arg[e_sto_statement] =
-@@ -4721,9 +4721,9 @@
- /* AB: Mark the streams involved with an UPDATE statement
- active. So that the optimizer can use indices for
- eventually used sub-selects. */
-- stream = (USHORT) node->nod_arg[e_mod_org_stream];
-+ stream = (USHORT)(IPTR) node->nod_arg[e_mod_org_stream];
- csb->csb_rpt[stream].csb_flags |= csb_active;
-- stream = (USHORT) node->nod_arg[e_mod_new_stream];
-+ stream = (USHORT)(IPTR) node->nod_arg[e_mod_new_stream];
- csb->csb_rpt[stream].csb_flags |= csb_active;
- }
-
-@@ -4735,9 +4735,9 @@
-
- if (node->nod_type == nod_modify) {
- /* AB: Remove the previous flags */
-- stream = (USHORT) node->nod_arg[e_mod_org_stream];
-+ stream = (USHORT)(IPTR) node->nod_arg[e_mod_org_stream];
- csb->csb_rpt[stream].csb_flags &= ~csb_active;
-- stream = (USHORT) node->nod_arg[e_mod_new_stream];
-+ stream = (USHORT)(IPTR) node->nod_arg[e_mod_new_stream];
- csb->csb_rpt[stream].csb_flags &= ~csb_active;
- }
-
-@@ -4836,7 +4836,7 @@
- FMT format;
- fmt::fmt_desc_iterator desc;
-
-- stream = (USHORT) node->nod_arg[e_mod_org_stream];
-+ stream = (USHORT)(IPTR) node->nod_arg[e_mod_org_stream];
- csb->csb_rpt[stream].csb_flags |= csb_update;
- format = CMP_format(tdbb, csb, stream);
- desc = format->fmt_desc.begin();
-@@ -4861,13 +4861,13 @@
- break;
-
- case nod_erase:
-- stream = (USHORT) node->nod_arg[e_erase_stream];
-+ stream = (USHORT)(IPTR) node->nod_arg[e_erase_stream];
- csb->csb_rpt[stream].csb_flags |= csb_update;
- break;
-
- case nod_field:
-- stream = (USHORT) node->nod_arg[e_fld_stream];
-- id = (USHORT) node->nod_arg[e_fld_id];
-+ stream = (USHORT)(IPTR) node->nod_arg[e_fld_stream];
-+ id = (USHORT)(IPTR) node->nod_arg[e_fld_id];
- SBM_set(tdbb, &csb->csb_rpt[stream].csb_fields, id);
- if (node->nod_flags & nod_value) {
- csb->csb_impure += sizeof(struct vlux);
-@@ -4941,7 +4941,7 @@
- pass2_rse(tdbb, csb, (RSE) node->nod_arg[e_agg_rse]);
- pass2(tdbb, csb, node->nod_arg[e_agg_map], node);
- pass2(tdbb, csb, node->nod_arg[e_agg_group], node);
-- stream = (USHORT) node->nod_arg[e_agg_stream];
-+ stream = (USHORT)(IPTR) node->nod_arg[e_agg_stream];
- assert(stream <= MAX_STREAMS);
- process_map(tdbb, csb, node->nod_arg[e_agg_map],
- &csb->csb_rpt[stream].csb_format);
-@@ -5050,7 +5050,7 @@
-
- node = *ptr;
- if (node->nod_type == nod_relation) {
-- USHORT stream = (USHORT) node->nod_arg[e_rel_stream];
-+ USHORT stream = (USHORT)(IPTR) node->nod_arg[e_rel_stream];
- csb->csb_rpt[stream].csb_flags |= csb_active;
- pass2(tdbb, csb, node, (JRD_NOD) rse);
- }
-@@ -5058,12 +5058,12 @@
- pass2_rse(tdbb, csb, (RSE) node);
- }
- else if (node->nod_type == nod_procedure) {
-- USHORT stream = (USHORT) node->nod_arg[e_prc_stream];
-+ USHORT stream = (USHORT)(IPTR) node->nod_arg[e_prc_stream];
- csb->csb_rpt[stream].csb_flags |= csb_active;
- pass2(tdbb, csb, node, (JRD_NOD) rse);
- }
- else if (node->nod_type == nod_aggregate) {
-- USHORT stream = (USHORT) node->nod_arg[e_agg_stream];
-+ USHORT stream = (USHORT)(IPTR) node->nod_arg[e_agg_stream];
- assert(stream <= MAX_STREAMS);
- csb->csb_rpt[stream].csb_flags |= csb_active;
- pass2(tdbb, csb, node, (JRD_NOD) rse);
-@@ -5118,7 +5118,7 @@
- /* Make up a format block sufficiently large to hold instantiated record */
-
- clauses = node->nod_arg[e_uni_clauses];
-- id = (USHORT) node->nod_arg[e_uni_stream];
-+ id = (USHORT)(IPTR) node->nod_arg[e_uni_stream];
- format = &csb->csb_rpt[id].csb_format;
-
- /* Process alternating rse and map blocks */
-@@ -5160,7 +5160,7 @@
-
- for (ptr = rse->rse_relation, end = ptr + rse->rse_count; ptr < end;
- ptr++) if ((*ptr)->nod_type == nod_relation) {
-- stream = (USHORT) (*ptr)->nod_arg[e_rel_stream];
-+ stream = (USHORT)(IPTR) (*ptr)->nod_arg[e_rel_stream];
- if (!(csb->csb_rpt[stream].csb_plan))
- ERR_post(gds_no_stream_plan, gds_arg_string,
- csb->csb_rpt[stream].csb_relation->rel_name, 0);
-@@ -5213,7 +5213,7 @@
-
- /* find the tail for the relation specified in the rse */
-
-- stream = (USHORT) plan_relation_node->nod_arg[e_rel_stream];
-+ stream = (USHORT)(IPTR) plan_relation_node->nod_arg[e_rel_stream];
- tail = &csb->csb_rpt[stream];
-
- /* if the plan references a view, find the real base relation
-@@ -5449,15 +5449,15 @@
- ptr < end; ptr++) {
- node = *ptr;
- if (node->nod_type == nod_relation) {
-- USHORT stream = (USHORT) node->nod_arg[e_rel_stream];
-+ USHORT stream = (USHORT)(IPTR) node->nod_arg[e_rel_stream];
- csb->csb_rpt[stream].csb_flags &= ~csb_active;
- }
- else if (node->nod_type == nod_procedure) {
-- USHORT stream = (USHORT) node->nod_arg[e_prc_stream];
-+ USHORT stream = (USHORT)(IPTR) node->nod_arg[e_prc_stream];
- csb->csb_rpt[stream].csb_flags &= ~csb_active;
- }
- else if (node->nod_type == nod_aggregate) {
-- USHORT stream = (USHORT) node->nod_arg[e_agg_stream];
-+ USHORT stream = (USHORT)(IPTR) node->nod_arg[e_agg_stream];
- assert(stream <= MAX_STREAMS);
- csb->csb_rpt[stream].csb_flags &= ~csb_active;
- }
-@@ -5553,7 +5553,7 @@
- for (end = ptr + map->nod_count; ptr < end; ptr++) {
- assignment = *ptr;
- field = assignment->nod_arg[e_asgn_to];
-- id = (USHORT) field->nod_arg[e_fld_id];
-+ id = (USHORT)(IPTR) field->nod_arg[e_fld_id];
- if (id >= format->fmt_count) {
- format->fmt_desc.resize(id + 1);
- }
-@@ -5689,13 +5689,13 @@
- /* for aggregates, check current rse, if not found then check
- the sub-rse */
- if (sub->nod_type == nod_aggregate) {
-- if ((stream == (USHORT) sub->nod_arg[e_rel_stream]) ||
-+ if ((stream == (USHORT)(IPTR) sub->nod_arg[e_rel_stream]) ||
- (stream_in_rse(stream, (RSE) sub->nod_arg[e_agg_rse])))
- return TRUE; /* do not mark as variant */
- }
-
- if ((sub->nod_type == nod_relation) &&
-- (stream == (USHORT) sub->nod_arg[e_rel_stream]))
-+ (stream == (USHORT)(IPTR) sub->nod_arg[e_rel_stream]))
- return TRUE; /* do not mark as variant */
- }
-
-diff -ur firebird-1.5.3.4870-orig/src/jrd/common.h firebird-1.5.3.4870/src/jrd/common.h
---- firebird-1.5.3.4870-orig/src/jrd/common.h 2006-03-17 01:39:04.000000000 -0500
-+++ firebird-1.5.3.4870/src/jrd/common.h 2006-03-17 01:32:29.000000000 -0500
-@@ -856,8 +856,8 @@
-
- #define JRD_BUGCHK 15 /* facility code for bugcheck messages */
- #ifndef OFFSET
--#define OFFSET(struct,fld) ((int) &((struct) 0)->fld)
--#define OFFSETA(struct,fld) ((int) ((struct) 0)->fld)
-+#define OFFSET(struct,fld) ((int)(IPTR) &((struct) 0)->fld)
-+#define OFFSETA(struct,fld) ((int)(IPTR) ((struct) 0)->fld)
- #endif
-
- #ifndef ODS_ALIGNMENT
-diff -ur firebird-1.5.3.4870-orig/src/jrd/dpm.epp firebird-1.5.3.4870/src/jrd/dpm.epp
---- firebird-1.5.3.4870-orig/src/jrd/dpm.epp 2006-03-17 01:39:04.000000000 -0500
-+++ firebird-1.5.3.4870/src/jrd/dpm.epp 2006-03-17 01:32:29.000000000 -0500
-@@ -2119,7 +2119,7 @@
-
- DEBUG if (stack)
- while (*stack)
-- CCH_precedence(tdbb, &rpb->rpb_window, (SLONG) LLS_POP(stack));
-+ CCH_precedence(tdbb, &rpb->rpb_window, (SLONG)(IPTR) LLS_POP(stack));
-
- CCH_precedence(tdbb, &rpb->rpb_window, -rpb->rpb_transaction);
- CCH_MARK(tdbb, &rpb->rpb_window);
-@@ -2736,7 +2736,7 @@
- If the page need to be compressed, compress it. */
-
- while (*stack)
-- CCH_precedence(tdbb, &rpb->rpb_window, (SLONG) LLS_POP(stack));
-+ CCH_precedence(tdbb, &rpb->rpb_window, (SLONG)(IPTR) LLS_POP(stack));
- CCH_MARK(tdbb, &rpb->rpb_window);
- i = page->dpg_count + ((slot) ? 0 : 1);
-
-diff -ur firebird-1.5.3.4870-orig/src/jrd/evl.cpp firebird-1.5.3.4870/src/jrd/evl.cpp
---- firebird-1.5.3.4870-orig/src/jrd/evl.cpp 2006-03-17 01:39:04.000000000 -0500
-+++ firebird-1.5.3.4870/src/jrd/evl.cpp 2006-03-17 01:32:29.000000000 -0500