tree par_type = tree_type_from_field_type(args[i].refer.field, nbytes);
if( par_type == FLOAT )
{
- par_type = SSIZE_T;
+ if( nbytes == 16 )
+ {
+ par_type = INT128;
+ }
+ else
+ {
+ par_type = SSIZE_T;
+ }
}
if( par_type == DOUBLE )
{
// It makes more sense if you don't think about it too hard.
- // We need to be able to restore prior arguments when doing recursive
- // calls:
- IF( member(args[i].refer.field->var_decl_node, "data"),
- ne_op,
- gg_cast(UCHAR_P, null_pointer_node) )
- {
- gg_call(VOID,
- "__gg__push_local_variable",
- gg_get_address_of(args[i].refer.field->var_decl_node),
- NULL_TREE);
- }
- ELSE
- ENDIF
-
- tree base = gg_define_variable(UCHAR_P);
- gg_assign(rt_i, build_int_cst_type(INT, i));
- //gg_printf("The rt_i counter is %d\n", rt_i, NULL_TREE);
- IF( rt_i, lt_op , var_decl_call_parameter_count )
- {
- if( i == 0 )
- {
- // This is the first parameter.
- parameter = DECL_ARGUMENTS(current_function->function_decl);
- }
- else
- {
- // These are subsequent parameters
- parameter = TREE_CHAIN(parameter);
- }
- gg_assign(base, gg_cast(UCHAR_P, parameter));
-
- if( args[i].refer.field->attr & any_length_e )
- {
- // gg_printf("side channel: Length of \"%s\" is %ld\n",
- // member(args[i].refer.field->var_decl_node, "name"),
- // gg_array_value(var_decl_call_parameter_lengths, rt_i),
- // NULL_TREE);
-
- // Get the length from the global lengths[] side channel. Don't
- // forget to use the length mask on the table value.
- gg_assign(member(args[i].refer.field->var_decl_node, "capacity"),
- gg_array_value(var_decl_call_parameter_lengths, rt_i));
- }
- }
- ELSE
- {
- gg_assign(base, gg_cast(UCHAR_P, null_pointer_node));
- }
- ENDIF
-
// Arriving here means that we are processing an instruction like
// this:
// PROCEDURE DIVISION USING using[0] using[1] ... using using[nusing-1]
// an OTHER-TO-COBOL call and the var_decl_call_parameter_lengths array
// is not valid
+ // Sort out the USING BY; it can be BY REFERENCE or BY VALUE:
cbl_ffi_crv_t crv = args[i].crv;
cbl_field_t *new_var = args[i].refer.field;
}
}
- if( crv == by_value_e )
+ // We need to be able to restore prior arguments when doing recursive
+ // calls:
+ IF( member(args[i].refer.field->var_decl_node, "data"),
+ ne_op,
+ gg_cast(UCHAR_P, null_pointer_node) )
{
- // 'parameter' is the 64-bit or 128-bit value that was placed on the stack
+ gg_call(VOID,
+ "__gg__push_local_variable",
+ gg_get_address_of(args[i].refer.field->var_decl_node),
+ NULL_TREE);
+ }
+ ELSE
+ ENDIF
+
+ if( crv == by_reference_e )
+ {
+ // The passed parameter, if it exists, is a pointer to a COBOL
+ // variable's data area
+ tree reference = gg_define_variable(UCHAR_P);
+ gg_assign(rt_i, build_int_cst_type(INT, i));
+ IF( rt_i, lt_op , var_decl_call_parameter_count )
+ {
+ if( i == 0 )
+ {
+ // This is the first parameter.
+ parameter = DECL_ARGUMENTS(current_function->function_decl);
+ }
+ else
+ {
+ // These are subsequent parameters
+ parameter = TREE_CHAIN(parameter);
+ }
+ gg_assign(reference, gg_cast(UCHAR_P, parameter));
+
+ if( args[i].refer.field->attr & any_length_e )
+ {
+ // gg_printf("side channel: Length of \"%s\" is %ld\n",
+ // member(args[i].refer.field->var_decl_node, "name"),
+ // gg_array_value(var_decl_call_parameter_lengths, rt_i),
+ // NULL_TREE);
+
+ // Get the length from the global lengths[] side channel. Don't
+ // forget to use the length mask on the table value.
+ gg_assign(member(args[i].refer.field->var_decl_node, "capacity"),
+ gg_array_value(var_decl_call_parameter_lengths, rt_i));
+ }
+ }
+ ELSE
+ {
+ gg_assign(reference, gg_cast(UCHAR_P, null_pointer_node));
+ }
+ ENDIF
+ // 'parameter' is a reference, so it it becomes the data member of
+ // the cblc_field_t COBOL variable.
+ gg_assign(member(args[i].field()->var_decl_node, "data"), reference);
+ // We need to apply reference + offset to the LINKAGE variable
+ // and all of its children
+ propogate_linkage_offsets( args[i].field(), reference );
+ }
+
+ if( crv == by_value_e )
+ {
size_t nbytes;
tree_type_from_field_type(new_var, nbytes);
tree parm = gg_define_variable(INT128);
+ tree value_type;
+ if( nbytes == 16 )
+ {
+ value_type = INT128;
+ }
+ else
+ {
+ value_type = SSIZE_T;
+ }
+
+ // 'parameter' is the 64-bit or 128-bit value that was placed on the stack
+ tree value = gg_define_variable(value_type);
+
+ gg_assign(rt_i, build_int_cst_type(INT, i));
+ IF( rt_i, lt_op , var_decl_call_parameter_count )
+ {
+ if( i == 0 )
+ {
+ // This is the first parameter.
+ parameter = DECL_ARGUMENTS(current_function->function_decl);
+ }
+ else
+ {
+ // These are subsequent parameters
+ parameter = TREE_CHAIN(parameter);
+ }
+ gg_assign(value, gg_cast(value_type, parameter));
+ gg_memcpy(gg_get_address_of(value),
+ gg_get_address_of(parameter),
+ build_int_cst_type(SIZE_T, nbytes));
+
+ if( args[i].refer.field->attr & any_length_e )
+ {
+ // gg_printf("side channel: Length of \"%s\" is %ld\n",
+ // member(args[i].refer.field->var_decl_node, "name"),
+ // gg_array_value(var_decl_call_parameter_lengths, rt_i),
+ // NULL_TREE);
+
+ // Get the length from the global lengths[] side channel. Don't
+ // forget to use the length mask on the table value.
+ gg_assign(member(args[i].refer.field->var_decl_node, "capacity"),
+ gg_array_value(var_decl_call_parameter_lengths, rt_i));
+ }
+ }
+ ELSE
+ {
+ gg_assign(value, gg_cast(value_type, integer_zero_node));
+ }
+ ENDIF
+
if( nbytes <= 8 )
{
// Our input is a 64-bit number
if( new_var->attr & signable_e )
{
- IF( gg_bitwise_and( gg_cast(SIZE_T, base),
+ IF( gg_bitwise_and( gg_cast(SIZE_T, value),
build_int_cst_type(SIZE_T, 0x8000000000000000ULL)),
ne_op,
gg_cast(SIZE_T, integer_zero_node) )
{
- // Our input is a negative number
+ // Our input is a negative number. Set it to -1, so that the
+ // eight high-order bytes are 0xFF
gg_assign(parm, gg_cast(INT128, integer_minus_one_node));
}
ELSE
{
- // Our input is a positive number
+ // Our input is a positive number, so set it to zero, so that
+ // the eight high-order bytes are 0x00
gg_assign(parm, gg_cast(INT128, integer_zero_node));
}
ENDIF
}
else
{
- // This is a 64-bit positive number:
+ // This is a 64-bit positive number: so set it to zero, so that
+ // the eight high-order bytes are 0x00
gg_assign(parm, gg_cast(INT128, integer_zero_node));
}
}
- // At this point, parm has been set to 0 or -1
+ // Now copy over the little-endian binary bytes, either 8 or 16 as
+ // necessary
gg_memcpy(gg_get_address_of(parm),
- gg_get_address_of(base),
+ gg_get_address_of(value),
build_int_cst_type(SIZE_T, nbytes));
-
tree array_type = build_array_type_nelts(UCHAR, new_var->data.capacity());
tree data_decl_node = gg_define_variable( array_type,
NULL,
next_index += 1;
}
}
- else
- {
- // 'parameter' is a reference, so it it becomes the data member of
- // the cblc_field_t COBOL variable.
- gg_assign(member(args[i].field()->var_decl_node, "data"), base);
-
- // We need to apply base + offset to the LINKAGE variable
- // and all of its children
- propogate_linkage_offsets( args[i].field(), base );
- }
}
}
}
if( !(args[i].refer.field->attr & intermediate_e) )
{
// All temporaries are SIZE_T
- if( args[i].refer.field->type == FldFloat
- && args[i].refer.field->data.capacity() == 16 )
+ if( args[i].refer.field->type == FldFloat )
{
as_int128 = true;
}
--- /dev/null
+ *> { dg-do run }
+ *> { dg-output-file "group2/USING_COMP-3_BY_REFERENCE.out" }
+ identification division.
+ program-id. prog.
+ data division.
+ working-storage section.
+ 01 var8 pic 9(2) comp-3.
+ 01 var16 pic 9(4) comp-3.
+ 01 var32 pic 9(8) comp-3.
+ 01 var64 pic 9(16) comp-3.
+ 01 var128 pic 9(32) comp-3.
+ 01 var8r pic 9(2) comp-3.
+ 01 var16r pic 9(4) comp-3.
+ 01 var32r pic 9(8) comp-3.
+ 01 var64r pic 9(16) comp-3.
+ 01 var128r pic 9(32) comp-3.
+ procedure division.
+ move 12 to var8
+ move 1234 to var16
+ move 12345678 to var32
+ move 1234567890123456 to var64
+ move 12345678901234567890123456789012 to var128
+ display var8
+ call "rvar8" using by reference var8 returning var8r
+ display var8r
+ display var16
+ call "rvar16" using by reference var16 returning var16r
+ display var16r
+ display var32
+ call "rvar32" using by reference var32 returning var32r
+ display var32r
+ display var64
+ call "rvar64" using by reference var64 returning var64r
+ display var64r
+ display var128
+ call "rvar128" using by reference var128 returning var128r
+ display var128r
+ goback.
+ end program prog.
+
+ identification division.
+ program-id. rvar8.
+ data division.
+ linkage section.
+ 01 var pic 9(2) comp-3 .
+ 01 varr pic 9(2) comp-3 .
+ procedure division using by reference var returning varr.
+ move var to varr.
+ end program rvar8.
+
+ identification division.
+ program-id. rvar16.
+ data division.
+ linkage section.
+ 01 var pic 9(4) comp-3 .
+ 01 varr pic 9(4) comp-3 .
+ procedure division using by reference var returning varr.
+ move var to varr.
+ end program rvar16.
+
+ identification division.
+ program-id. rvar32.
+ data division.
+ linkage section.
+ 01 var pic 9(8) comp-3 .
+ 01 varr pic 9(8) comp-3 .
+ procedure division using by reference var returning varr.
+ move var to varr.
+ end program rvar32.
+
+ identification division.
+ program-id. rvar64.
+ data division.
+ linkage section.
+ 01 var pic 9(16) comp-3 .
+ 01 varr pic 9(16) comp-3 .
+ procedure division using by reference var returning varr.
+ move var to varr.
+ end program rvar64.
+
+ identification division.
+ program-id. rvar128.
+ data division.
+ linkage section.
+ 01 var pic 9(32) comp-3 .
+ 01 varr pic 9(32) comp-3 .
+ procedure division using by reference var returning varr.
+ move var to varr.
+ end program rvar128.
+
--- /dev/null
+12
+12
+1234
+1234
+12345678
+12345678
+1234567890123456
+1234567890123456
+12345678901234567890123456789012
+12345678901234567890123456789012
+
--- /dev/null
+ *> { dg-do run }
+ *> { dg-output-file "group2/USING_COMP-3_BY_VALUE.out" }
+ identification division.
+ program-id. prog.
+ data division.
+ working-storage section.
+ 01 var8 pic 9(2) comp-3.
+ 01 var16 pic 9(4) comp-3.
+ 01 var32 pic 9(8) comp-3.
+ 01 var64 pic 9(16) comp-3.
+ 01 var128 pic 9(32) comp-3.
+ 01 var8r pic 9(2) comp-3.
+ 01 var16r pic 9(4) comp-3.
+ 01 var32r pic 9(8) comp-3.
+ 01 var64r pic 9(16) comp-3.
+ 01 var128r pic 9(32) comp-3.
+ procedure division.
+ move 12 to var8
+ move 1234 to var16
+ move 12345678 to var32
+ move 1234567890123456 to var64
+ move 12345678901234567890123456789012 to var128
+ display var8
+ call "rvar8" using by value var8 returning var8r
+ display var8r
+ display var16
+ call "rvar16" using by value var16 returning var16r
+ display var16r
+ display var32
+ call "rvar32" using by value var32 returning var32r
+ display var32r
+ display var64
+ call "rvar64" using by value var64 returning var64r
+ display var64r
+ display var128
+ call "rvar128" using by value var128 returning var128r
+ display var128r
+ goback.
+ end program prog.
+
+ identification division.
+ program-id. rvar8.
+ data division.
+ linkage section.
+ 01 var pic 9(2) comp-3 .
+ 01 varr pic 9(2) comp-3 .
+ procedure division using by value var returning varr.
+ move var to varr.
+ end program rvar8.
+
+ identification division.
+ program-id. rvar16.
+ data division.
+ linkage section.
+ 01 var pic 9(4) comp-3 .
+ 01 varr pic 9(4) comp-3 .
+ procedure division using by value var returning varr.
+ move var to varr.
+ end program rvar16.
+
+ identification division.
+ program-id. rvar32.
+ data division.
+ linkage section.
+ 01 var pic 9(8) comp-3 .
+ 01 varr pic 9(8) comp-3 .
+ procedure division using by value var returning varr.
+ move var to varr.
+ end program rvar32.
+
+ identification division.
+ program-id. rvar64.
+ data division.
+ linkage section.
+ 01 var pic 9(16) comp-3 .
+ 01 varr pic 9(16) comp-3 .
+ procedure division using by value var returning varr.
+ move var to varr.
+ end program rvar64.
+
+ identification division.
+ program-id. rvar128.
+ data division.
+ linkage section.
+ 01 var pic 9(32) comp-3 .
+ 01 varr pic 9(32) comp-3 .
+ procedure division using by value var returning varr.
+ move var to varr.
+ end program rvar128.
+
--- /dev/null
+12
+12
+1234
+1234
+12345678
+12345678
+1234567890123456
+1234567890123456
+12345678901234567890123456789012
+12345678901234567890123456789012
+
--- /dev/null
+ *> { dg-do run }
+ *> { dg-output-file "group2/USING_FLOAT-SLX_BY_REFERENCE.out" }
+ identification division.
+ program-id. prog.
+ data division.
+ working-storage section.
+ 01 var1 float-short .
+ 01 var2 float-long .
+ 01 var3 float-extended .
+ 01 var1r float-short .
+ 01 var2r float-long .
+ 01 var3r float-extended .
+ procedure division.
+ move 1.234E30 to var1
+ move 2.345E300 to var2
+ move 3.456E4000 to var3
+ display var1
+ call "rvar1" using by reference var1 returning var1r
+ display var1r
+ display var2
+ call "rvar2" using by reference var2 returning var2r
+ display var2r
+ display var3
+ call "rvar3" using by reference var3 returning var3r
+ display var3r
+ goback.
+ end program prog.
+
+ identification division.
+ program-id. rvar1.
+ data division.
+ linkage section.
+ 01 var float-short.
+ 01 varr float-short.
+ procedure division using by reference var returning varr.
+ move var to varr.
+ end program rvar1.
+
+ identification division.
+ program-id. rvar2.
+ data division.
+ linkage section.
+ 01 var float-long.
+ 01 varr float-long.
+ procedure division using by reference var returning varr.
+ move var to varr.
+ end program rvar2.
+
+ identification division.
+ program-id. rvar3.
+ data division.
+ linkage section.
+ 01 var float-extended.
+ 01 varr float-extended.
+ procedure division using by reference var returning varr.
+ move var to varr.
+ end program rvar3.
+
--- /dev/null
+1.233999999E+30
+1.233999999E+30
+2.34500000000000002E+300
+2.34500000000000002E+300
+3.455999999999999999999999999999999993E+4000
+3.455999999999999999999999999999999993E+4000
+
--- /dev/null
+ *> { dg-do run }
+ *> { dg-output-file "group2/USING_FLOAT-SLX_BY_VALUE.out" }
+ identification division.
+ program-id. prog.
+ data division.
+ working-storage section.
+ 01 var1 float-short .
+ 01 var2 float-long .
+ 01 var3 float-extended .
+ 01 var1r float-short .
+ 01 var2r float-long .
+ 01 var3r float-extended .
+ procedure division.
+ move 1.234E30 to var1
+ move 2.345E300 to var2
+ move 3.456E4000 to var3
+ display var1
+ call "rvar1" using by value var1 returning var1r
+ display var1r
+ display var2
+ call "rvar2" using by value var2 returning var2r
+ display var2r
+ display var3
+ call "rvar3" using by value var3 returning var3r
+ display var3r
+ goback.
+ end program prog.
+
+ identification division.
+ program-id. rvar1.
+ data division.
+ linkage section.
+ 01 var float-short.
+ 01 varr float-short.
+ procedure division using by value var returning varr.
+ move var to varr.
+ end program rvar1.
+
+ identification division.
+ program-id. rvar2.
+ data division.
+ linkage section.
+ 01 var float-long.
+ 01 varr float-long.
+ procedure division using by value var returning varr.
+ move var to varr.
+ end program rvar2.
+
+ identification division.
+ program-id. rvar3.
+ data division.
+ linkage section.
+ 01 var float-extended.
+ 01 varr float-extended.
+ procedure division using by value var returning varr.
+ move var to varr.
+ end program rvar3.
+
--- /dev/null
+1.233999999E+30
+1.233999999E+30
+2.34500000000000002E+300
+2.34500000000000002E+300
+3.455999999999999999999999999999999993E+4000
+3.455999999999999999999999999999999993E+4000
+
--- /dev/null
+ *> { dg-do run }
+ *> { dg-output-file "group2/USING_NumericDisplay_BY_REFERENCE.out" }
+ identification division.
+ program-id. prog.
+ data division.
+ working-storage section.
+ 01 var8 pic 9(2).
+ 01 var16 pic 9(4).
+ 01 var32 pic 9(8).
+ 01 var64 pic 9(16).
+ 01 var128 pic 9(32).
+ 01 var8r pic 9(2).
+ 01 var16r pic 9(4).
+ 01 var32r pic 9(8).
+ 01 var64r pic 9(16).
+ 01 var128r pic 9(32).
+ procedure division.
+ move 12 to var8
+ move 1234 to var16
+ move 12345678 to var32
+ move 1234567890123456 to var64
+ move 12345678901234567890123456789012 to var128
+ display var8
+ call "rvar8" using by reference var8 returning var8r
+ display var8r
+ display var16
+ call "rvar16" using by reference var16 returning var16r
+ display var16r
+ display var32
+ call "rvar32" using by reference var32 returning var32r
+ display var32r
+ display var64
+ call "rvar64" using by reference var64 returning var64r
+ display var64r
+ display var128
+ call "rvar128" using by reference var128 returning var128r
+ display var128r
+ goback.
+ end program prog.
+
+ identification division.
+ program-id. rvar8.
+ data division.
+ linkage section.
+ 01 var pic 9(2) .
+ 01 varr pic 9(2) .
+ procedure division using by reference var returning varr.
+ move var to varr.
+ end program rvar8.
+
+ identification division.
+ program-id. rvar16.
+ data division.
+ linkage section.
+ 01 var pic 9(4) .
+ 01 varr pic 9(4) .
+ procedure division using by reference var returning varr.
+ move var to varr.
+ end program rvar16.
+
+ identification division.
+ program-id. rvar32.
+ data division.
+ linkage section.
+ 01 var pic 9(8) .
+ 01 varr pic 9(8) .
+ procedure division using by reference var returning varr.
+ move var to varr.
+ end program rvar32.
+
+ identification division.
+ program-id. rvar64.
+ data division.
+ linkage section.
+ 01 var pic 9(16) .
+ 01 varr pic 9(16) .
+ procedure division using by reference var returning varr.
+ move var to varr.
+ end program rvar64.
+
+ identification division.
+ program-id. rvar128.
+ data division.
+ linkage section.
+ 01 var pic 9(32) .
+ 01 varr pic 9(32) .
+ procedure division using by reference var returning varr.
+ move var to varr.
+ end program rvar128.
+
--- /dev/null
+12
+12
+1234
+1234
+12345678
+12345678
+1234567890123456
+1234567890123456
+12345678901234567890123456789012
+12345678901234567890123456789012
+
--- /dev/null
+ *> { dg-do run }
+ *> { dg-output-file "group2/USING_NumericDisplay_BY_VALUE.out" }
+ identification division.
+ program-id. prog.
+ data division.
+ working-storage section.
+ 01 var8 pic 9(2).
+ 01 var16 pic 9(4).
+ 01 var32 pic 9(8).
+ 01 var64 pic 9(16).
+ 01 var128 pic 9(32).
+ 01 var8r pic 9(2).
+ 01 var16r pic 9(4).
+ 01 var32r pic 9(8).
+ 01 var64r pic 9(16).
+ 01 var128r pic 9(32).
+ procedure division.
+ move 12 to var8
+ move 1234 to var16
+ move 12345678 to var32
+ move 1234567890123456 to var64
+ move 12345678901234567890123456789012 to var128
+ display var8
+ call "rvar8" using by value var8 returning var8r
+ display var8r
+ display var16
+ call "rvar16" using by value var16 returning var16r
+ display var16r
+ display var32
+ call "rvar32" using by value var32 returning var32r
+ display var32r
+ display var64
+ call "rvar64" using by value var64 returning var64r
+ display var64r
+ display var128
+ call "rvar128" using by value var128 returning var128r
+ display var128r
+ goback.
+ end program prog.
+
+ identification division.
+ program-id. rvar8.
+ data division.
+ linkage section.
+ 01 var pic 9(2) .
+ 01 varr pic 9(2) .
+ procedure division using by value var returning varr.
+ move var to varr.
+ end program rvar8.
+
+ identification division.
+ program-id. rvar16.
+ data division.
+ linkage section.
+ 01 var pic 9(4) .
+ 01 varr pic 9(4) .
+ procedure division using by value var returning varr.
+ move var to varr.
+ end program rvar16.
+
+ identification division.
+ program-id. rvar32.
+ data division.
+ linkage section.
+ 01 var pic 9(8) .
+ 01 varr pic 9(8) .
+ procedure division using by value var returning varr.
+ move var to varr.
+ end program rvar32.
+
+ identification division.
+ program-id. rvar64.
+ data division.
+ linkage section.
+ 01 var pic 9(16) .
+ 01 varr pic 9(16) .
+ procedure division using by value var returning varr.
+ move var to varr.
+ end program rvar64.
+
+ identification division.
+ program-id. rvar128.
+ data division.
+ linkage section.
+ 01 var pic 9(32) .
+ 01 varr pic 9(32) .
+ procedure division using by value var returning varr.
+ move var to varr.
+ end program rvar128.
+
--- /dev/null
+12
+12
+1234
+1234
+12345678
+12345678
+1234567890123456
+1234567890123456
+12345678901234567890123456789012
+12345678901234567890123456789012
+
--- /dev/null
+ *> { dg-do run }
+ *> { dg-output-file "group2/USING_Signed_-_COMP-3_BY_REFERENCE.out" }
+ identification division.
+ program-id. prog.
+ data division.
+ working-storage section.
+ 01 var8 pic s9(2) comp-3.
+ 01 var16 pic s9(4) comp-3.
+ 01 var32 pic s9(8) comp-3.
+ 01 var64 pic s9(16) comp-3.
+ 01 var128 pic s9(32) comp-3.
+ 01 var8r pic s9(2) comp-3.
+ 01 var16r pic s9(4) comp-3.
+ 01 var32r pic s9(8) comp-3.
+ 01 var64r pic s9(16) comp-3.
+ 01 var128r pic s9(32) comp-3.
+ procedure division.
+ move -12 to var8
+ move -1234 to var16
+ move -12345678 to var32
+ move -1234567890123456 to var64
+ move -12345678901234567890123456789012 to var128
+ display var8
+ call "rvar8" using by reference var8 returning var8r
+ display var8r
+ display var16
+ call "rvar16" using by reference var16 returning var16r
+ display var16r
+ display var32
+ call "rvar32" using by reference var32 returning var32r
+ display var32r
+ display var64
+ call "rvar64" using by reference var64 returning var64r
+ display var64r
+ display var128
+ call "rvar128" using by reference var128 returning var128r
+ display var128r
+ goback.
+ end program prog.
+
+ identification division.
+ program-id. rvar8.
+ data division.
+ linkage section.
+ 01 var pic s9(2) comp-3 .
+ 01 varr pic s9(2) comp-3 .
+ procedure division using by reference var returning varr.
+ move var to varr.
+ end program rvar8.
+
+ identification division.
+ program-id. rvar16.
+ data division.
+ linkage section.
+ 01 var pic s9(4) comp-3 .
+ 01 varr pic s9(4) comp-3 .
+ procedure division using by reference var returning varr.
+ move var to varr.
+ end program rvar16.
+
+ identification division.
+ program-id. rvar32.
+ data division.
+ linkage section.
+ 01 var pic s9(8) comp-3 .
+ 01 varr pic s9(8) comp-3 .
+ procedure division using by reference var returning varr.
+ move var to varr.
+ end program rvar32.
+
+ identification division.
+ program-id. rvar64.
+ data division.
+ linkage section.
+ 01 var pic s9(16) comp-3 .
+ 01 varr pic s9(16) comp-3 .
+ procedure division using by reference var returning varr.
+ move var to varr.
+ end program rvar64.
+
+ identification division.
+ program-id. rvar128.
+ data division.
+ linkage section.
+ 01 var pic s9(32) comp-3 .
+ 01 varr pic s9(32) comp-3 .
+ procedure division using by reference var returning varr.
+ move var to varr.
+ end program rvar128.
+
--- /dev/null
+-12
+-12
+-1234
+-1234
+-12345678
+-12345678
+-1234567890123456
+-1234567890123456
+-12345678901234567890123456789012
+-12345678901234567890123456789012
+
--- /dev/null
+ *> { dg-do run }
+ *> { dg-output-file "group2/USING_Signed_-_COMP-3_BY_VALUE.out" }
+ identification division.
+ program-id. prog.
+ data division.
+ working-storage section.
+ 01 var8 pic s9(2) comp-3.
+ 01 var16 pic s9(4) comp-3.
+ 01 var32 pic s9(8) comp-3.
+ 01 var64 pic s9(16) comp-3.
+ 01 var128 pic s9(32) comp-3.
+ 01 var8r pic s9(2) comp-3.
+ 01 var16r pic s9(4) comp-3.
+ 01 var32r pic s9(8) comp-3.
+ 01 var64r pic s9(16) comp-3.
+ 01 var128r pic s9(32) comp-3.
+ procedure division.
+ move -12 to var8
+ move -1234 to var16
+ move -12345678 to var32
+ move -1234567890123456 to var64
+ move -12345678901234567890123456789012 to var128
+ display var8
+ call "rvar8" using by value var8 returning var8r
+ display var8r
+ display var16
+ call "rvar16" using by value var16 returning var16r
+ display var16r
+ display var32
+ call "rvar32" using by value var32 returning var32r
+ display var32r
+ display var64
+ call "rvar64" using by value var64 returning var64r
+ display var64r
+ display var128
+ call "rvar128" using by value var128 returning var128r
+ display var128r
+ goback.
+ end program prog.
+
+ identification division.
+ program-id. rvar8.
+ data division.
+ linkage section.
+ 01 var pic s9(2) comp-3 .
+ 01 varr pic s9(2) comp-3 .
+ procedure division using by value var returning varr.
+ move var to varr.
+ end program rvar8.
+
+ identification division.
+ program-id. rvar16.
+ data division.
+ linkage section.
+ 01 var pic s9(4) comp-3 .
+ 01 varr pic s9(4) comp-3 .
+ procedure division using by value var returning varr.
+ move var to varr.
+ end program rvar16.
+
+ identification division.
+ program-id. rvar32.
+ data division.
+ linkage section.
+ 01 var pic s9(8) comp-3 .
+ 01 varr pic s9(8) comp-3 .
+ procedure division using by value var returning varr.
+ move var to varr.
+ end program rvar32.
+
+ identification division.
+ program-id. rvar64.
+ data division.
+ linkage section.
+ 01 var pic s9(16) comp-3 .
+ 01 varr pic s9(16) comp-3 .
+ procedure division using by value var returning varr.
+ move var to varr.
+ end program rvar64.
+
+ identification division.
+ program-id. rvar128.
+ data division.
+ linkage section.
+ 01 var pic s9(32) comp-3 .
+ 01 varr pic s9(32) comp-3 .
+ procedure division using by value var returning varr.
+ move var to varr.
+ end program rvar128.
+
--- /dev/null
+-12
+-12
+-1234
+-1234
+-12345678
+-12345678
+-1234567890123456
+-1234567890123456
+-12345678901234567890123456789012
+-12345678901234567890123456789012
+
--- /dev/null
+ *> { dg-do run }
+ *> { dg-output-file "group2/USING_Signed_-_NumericDisplay_BY_REFERENCE.out" }
+ identification division.
+ program-id. prog.
+ data division.
+ working-storage section.
+ 01 var8 pic s9(2).
+ 01 var16 pic s9(4).
+ 01 var32 pic s9(8).
+ 01 var64 pic s9(16).
+ 01 var128 pic s9(32).
+ 01 var8r pic s9(2).
+ 01 var16r pic s9(4).
+ 01 var32r pic s9(8).
+ 01 var64r pic s9(16).
+ 01 var128r pic s9(32).
+ procedure division.
+ move -12 to var8
+ move -1234 to var16
+ move -12345678 to var32
+ move -1234567890123456 to var64
+ move -12345678901234567890123456789012 to var128
+ display var8
+ call "rvar8" using by reference var8 returning var8r
+ display var8r
+ display var16
+ call "rvar16" using by reference var16 returning var16r
+ display var16r
+ display var32
+ call "rvar32" using by reference var32 returning var32r
+ display var32r
+ display var64
+ call "rvar64" using by reference var64 returning var64r
+ display var64r
+ display var128
+ call "rvar128" using by reference var128 returning var128r
+ display var128r
+ goback.
+ end program prog.
+
+ identification division.
+ program-id. rvar8.
+ data division.
+ linkage section.
+ 01 var pic s9(2) .
+ 01 varr pic s9(2) .
+ procedure division using by reference var returning varr.
+ move var to varr.
+ end program rvar8.
+
+ identification division.
+ program-id. rvar16.
+ data division.
+ linkage section.
+ 01 var pic s9(4) .
+ 01 varr pic s9(4) .
+ procedure division using by reference var returning varr.
+ move var to varr.
+ end program rvar16.
+
+ identification division.
+ program-id. rvar32.
+ data division.
+ linkage section.
+ 01 var pic s9(8) .
+ 01 varr pic s9(8) .
+ procedure division using by reference var returning varr.
+ move var to varr.
+ end program rvar32.
+
+ identification division.
+ program-id. rvar64.
+ data division.
+ linkage section.
+ 01 var pic s9(16) .
+ 01 varr pic s9(16) .
+ procedure division using by reference var returning varr.
+ move var to varr.
+ end program rvar64.
+
+ identification division.
+ program-id. rvar128.
+ data division.
+ linkage section.
+ 01 var pic s9(32) .
+ 01 varr pic s9(32) .
+ procedure division using by reference var returning varr.
+ move var to varr.
+ end program rvar128.
+
--- /dev/null
+-12
+-12
+-1234
+-1234
+-12345678
+-12345678
+-1234567890123456
+-1234567890123456
+-12345678901234567890123456789012
+-12345678901234567890123456789012
+
--- /dev/null
+ *> { dg-do run }
+ *> { dg-output-file "group2/USING_Signed_-_NumericDisplay_BY_VALUE.out" }
+ identification division.
+ program-id. prog.
+ data division.
+ working-storage section.
+ 01 var8 pic s9(2).
+ 01 var16 pic s9(4).
+ 01 var32 pic s9(8).
+ 01 var64 pic s9(16).
+ 01 var128 pic s9(32).
+ 01 var8r pic s9(2).
+ 01 var16r pic s9(4).
+ 01 var32r pic s9(8).
+ 01 var64r pic s9(16).
+ 01 var128r pic s9(32).
+ procedure division.
+ move -12 to var8
+ move -1234 to var16
+ move -12345678 to var32
+ move -1234567890123456 to var64
+ move -12345678901234567890123456789012 to var128
+ display var8
+ call "rvar8" using by value var8 returning var8r
+ display var8r
+ display var16
+ call "rvar16" using by value var16 returning var16r
+ display var16r
+ display var32
+ call "rvar32" using by value var32 returning var32r
+ display var32r
+ display var64
+ call "rvar64" using by value var64 returning var64r
+ display var64r
+ display var128
+ call "rvar128" using by value var128 returning var128r
+ display var128r
+ goback.
+ end program prog.
+
+ identification division.
+ program-id. rvar8.
+ data division.
+ linkage section.
+ 01 var pic s9(2) .
+ 01 varr pic s9(2) .
+ procedure division using by value var returning varr.
+ move var to varr.
+ end program rvar8.
+
+ identification division.
+ program-id. rvar16.
+ data division.
+ linkage section.
+ 01 var pic s9(4) .
+ 01 varr pic s9(4) .
+ procedure division using by value var returning varr.
+ move var to varr.
+ end program rvar16.
+
+ identification division.
+ program-id. rvar32.
+ data division.
+ linkage section.
+ 01 var pic s9(8) .
+ 01 varr pic s9(8) .
+ procedure division using by value var returning varr.
+ move var to varr.
+ end program rvar32.
+
+ identification division.
+ program-id. rvar64.
+ data division.
+ linkage section.
+ 01 var pic s9(16) .
+ 01 varr pic s9(16) .
+ procedure division using by value var returning varr.
+ move var to varr.
+ end program rvar64.
+
+ identification division.
+ program-id. rvar128.
+ data division.
+ linkage section.
+ 01 var pic s9(32) .
+ 01 varr pic s9(32) .
+ procedure division using by value var returning varr.
+ move var to varr.
+ end program rvar128.
+
--- /dev/null
+-12
+-12
+-1234
+-1234
+-12345678
+-12345678
+-1234567890123456
+-1234567890123456
+-12345678901234567890123456789012
+-12345678901234567890123456789012
+
--- /dev/null
+ *> { dg-do run }
+ *> { dg-output-file "group2/USING_Signed___COMP-3_BY_REFERENCE.out" }
+ identification division.
+ program-id. prog.
+ data division.
+ working-storage section.
+ 01 var8 pic s9(2) comp-3.
+ 01 var16 pic s9(4) comp-3.
+ 01 var32 pic s9(8) comp-3.
+ 01 var64 pic s9(16) comp-3.
+ 01 var128 pic s9(32) comp-3.
+ 01 var8r pic s9(2) comp-3.
+ 01 var16r pic s9(4) comp-3.
+ 01 var32r pic s9(8) comp-3.
+ 01 var64r pic s9(16) comp-3.
+ 01 var128r pic s9(32) comp-3.
+ procedure division.
+ move 12 to var8
+ move 1234 to var16
+ move 12345678 to var32
+ move 1234567890123456 to var64
+ move 12345678901234567890123456789012 to var128
+ display var8
+ call "rvar8" using by reference var8 returning var8r
+ display var8r
+ display var16
+ call "rvar16" using by reference var16 returning var16r
+ display var16r
+ display var32
+ call "rvar32" using by reference var32 returning var32r
+ display var32r
+ display var64
+ call "rvar64" using by reference var64 returning var64r
+ display var64r
+ display var128
+ call "rvar128" using by reference var128 returning var128r
+ display var128r
+ goback.
+ end program prog.
+
+ identification division.
+ program-id. rvar8.
+ data division.
+ linkage section.
+ 01 var pic 9(2) comp-3 .
+ 01 varr pic 9(2) comp-3 .
+ procedure division using by reference var returning varr.
+ move var to varr.
+ end program rvar8.
+
+ identification division.
+ program-id. rvar16.
+ data division.
+ linkage section.
+ 01 var pic 9(4) comp-3 .
+ 01 varr pic 9(4) comp-3 .
+ procedure division using by reference var returning varr.
+ move var to varr.
+ end program rvar16.
+
+ identification division.
+ program-id. rvar32.
+ data division.
+ linkage section.
+ 01 var pic 9(8) comp-3 .
+ 01 varr pic 9(8) comp-3 .
+ procedure division using by reference var returning varr.
+ move var to varr.
+ end program rvar32.
+
+ identification division.
+ program-id. rvar64.
+ data division.
+ linkage section.
+ 01 var pic 9(16) comp-3 .
+ 01 varr pic 9(16) comp-3 .
+ procedure division using by reference var returning varr.
+ move var to varr.
+ end program rvar64.
+
+ identification division.
+ program-id. rvar128.
+ data division.
+ linkage section.
+ 01 var pic 9(32) comp-3 .
+ 01 varr pic 9(32) comp-3 .
+ procedure division using by reference var returning varr.
+ move var to varr.
+ end program rvar128.
+
--- /dev/null
++12
++12
++1234
++1234
++12345678
++12345678
++1234567890123456
++1234567890123456
++12345678901234567890123456789012
++12345678901234567890123456789012
+
--- /dev/null
+ *> { dg-do run }
+ *> { dg-output-file "group2/USING_Signed___COMP-3_BY_VALUE.out" }
+ identification division.
+ program-id. prog.
+ data division.
+ working-storage section.
+ 01 var8 pic s9(2) comp-3.
+ 01 var16 pic s9(4) comp-3.
+ 01 var32 pic s9(8) comp-3.
+ 01 var64 pic s9(16) comp-3.
+ 01 var128 pic s9(32) comp-3.
+ 01 var8r pic s9(2) comp-3.
+ 01 var16r pic s9(4) comp-3.
+ 01 var32r pic s9(8) comp-3.
+ 01 var64r pic s9(16) comp-3.
+ 01 var128r pic s9(32) comp-3.
+ procedure division.
+ move 12 to var8
+ move 1234 to var16
+ move 12345678 to var32
+ move 1234567890123456 to var64
+ move 12345678901234567890123456789012 to var128
+ display var8
+ call "rvar8" using by value var8 returning var8r
+ display var8r
+ display var16
+ call "rvar16" using by value var16 returning var16r
+ display var16r
+ display var32
+ call "rvar32" using by value var32 returning var32r
+ display var32r
+ display var64
+ call "rvar64" using by value var64 returning var64r
+ display var64r
+ display var128
+ call "rvar128" using by value var128 returning var128r
+ display var128r
+ goback.
+ end program prog.
+
+ identification division.
+ program-id. rvar8.
+ data division.
+ linkage section.
+ 01 var pic 9(2) comp-3 .
+ 01 varr pic 9(2) comp-3 .
+ procedure division using by value var returning varr.
+ move var to varr.
+ end program rvar8.
+
+ identification division.
+ program-id. rvar16.
+ data division.
+ linkage section.
+ 01 var pic 9(4) comp-3 .
+ 01 varr pic 9(4) comp-3 .
+ procedure division using by value var returning varr.
+ move var to varr.
+ end program rvar16.
+
+ identification division.
+ program-id. rvar32.
+ data division.
+ linkage section.
+ 01 var pic 9(8) comp-3 .
+ 01 varr pic 9(8) comp-3 .
+ procedure division using by value var returning varr.
+ move var to varr.
+ end program rvar32.
+
+ identification division.
+ program-id. rvar64.
+ data division.
+ linkage section.
+ 01 var pic 9(16) comp-3 .
+ 01 varr pic 9(16) comp-3 .
+ procedure division using by value var returning varr.
+ move var to varr.
+ end program rvar64.
+
+ identification division.
+ program-id. rvar128.
+ data division.
+ linkage section.
+ 01 var pic 9(32) comp-3 .
+ 01 varr pic 9(32) comp-3 .
+ procedure division using by value var returning varr.
+ move var to varr.
+ end program rvar128.
+
--- /dev/null
++12
++12
++1234
++1234
++12345678
++12345678
++1234567890123456
++1234567890123456
++12345678901234567890123456789012
++12345678901234567890123456789012
+
--- /dev/null
+ *> { dg-do run }
+ *> { dg-output-file "group2/USING_Signed___NumericDisplay_BY_REFERENCE.out" }
+ identification division.
+ program-id. prog.
+ data division.
+ working-storage section.
+ 01 var8 pic s9(2).
+ 01 var16 pic s9(4).
+ 01 var32 pic s9(8).
+ 01 var64 pic s9(16).
+ 01 var128 pic s9(32).
+ 01 var8r pic s9(2).
+ 01 var16r pic s9(4).
+ 01 var32r pic s9(8).
+ 01 var64r pic s9(16).
+ 01 var128r pic s9(32).
+ procedure division.
+ move 12 to var8
+ move 1234 to var16
+ move 12345678 to var32
+ move 1234567890123456 to var64
+ move 12345678901234567890123456789012 to var128
+ display var8
+ call "rvar8" using by reference var8 returning var8r
+ display var8r
+ display var16
+ call "rvar16" using by reference var16 returning var16r
+ display var16r
+ display var32
+ call "rvar32" using by reference var32 returning var32r
+ display var32r
+ display var64
+ call "rvar64" using by reference var64 returning var64r
+ display var64r
+ display var128
+ call "rvar128" using by reference var128 returning var128r
+ display var128r
+ goback.
+ end program prog.
+
+ identification division.
+ program-id. rvar8.
+ data division.
+ linkage section.
+ 01 var pic 9(2) .
+ 01 varr pic 9(2) .
+ procedure division using by reference var returning varr.
+ move var to varr.
+ end program rvar8.
+
+ identification division.
+ program-id. rvar16.
+ data division.
+ linkage section.
+ 01 var pic 9(4) .
+ 01 varr pic 9(4) .
+ procedure division using by reference var returning varr.
+ move var to varr.
+ end program rvar16.
+
+ identification division.
+ program-id. rvar32.
+ data division.
+ linkage section.
+ 01 var pic 9(8) .
+ 01 varr pic 9(8) .
+ procedure division using by reference var returning varr.
+ move var to varr.
+ end program rvar32.
+
+ identification division.
+ program-id. rvar64.
+ data division.
+ linkage section.
+ 01 var pic 9(16) .
+ 01 varr pic 9(16) .
+ procedure division using by reference var returning varr.
+ move var to varr.
+ end program rvar64.
+
+ identification division.
+ program-id. rvar128.
+ data division.
+ linkage section.
+ 01 var pic 9(32) .
+ 01 varr pic 9(32) .
+ procedure division using by reference var returning varr.
+ move var to varr.
+ end program rvar128.
+
--- /dev/null
++12
++12
++1234
++1234
++12345678
++12345678
++1234567890123456
++1234567890123456
++12345678901234567890123456789012
++12345678901234567890123456789012
+
--- /dev/null
+ *> { dg-do run }
+ *> { dg-output-file "group2/USING_Signed___NumericDisplay_BY_VALUE.out" }
+ identification division.
+ program-id. prog.
+ data division.
+ working-storage section.
+ 01 var8 pic s9(2).
+ 01 var16 pic s9(4).
+ 01 var32 pic s9(8).
+ 01 var64 pic s9(16).
+ 01 var128 pic s9(32).
+ 01 var8r pic s9(2).
+ 01 var16r pic s9(4).
+ 01 var32r pic s9(8).
+ 01 var64r pic s9(16).
+ 01 var128r pic s9(32).
+ procedure division.
+ move 12 to var8
+ move 1234 to var16
+ move 12345678 to var32
+ move 1234567890123456 to var64
+ move 12345678901234567890123456789012 to var128
+ display var8
+ call "rvar8" using by value var8 returning var8r
+ display var8r
+ display var16
+ call "rvar16" using by value var16 returning var16r
+ display var16r
+ display var32
+ call "rvar32" using by value var32 returning var32r
+ display var32r
+ display var64
+ call "rvar64" using by value var64 returning var64r
+ display var64r
+ display var128
+ call "rvar128" using by value var128 returning var128r
+ display var128r
+ goback.
+ end program prog.
+
+ identification division.
+ program-id. rvar8.
+ data division.
+ linkage section.
+ 01 var pic 9(2) .
+ 01 varr pic 9(2) .
+ procedure division using by value var returning varr.
+ move var to varr.
+ end program rvar8.
+
+ identification division.
+ program-id. rvar16.
+ data division.
+ linkage section.
+ 01 var pic 9(4) .
+ 01 varr pic 9(4) .
+ procedure division using by value var returning varr.
+ move var to varr.
+ end program rvar16.
+
+ identification division.
+ program-id. rvar32.
+ data division.
+ linkage section.
+ 01 var pic 9(8) .
+ 01 varr pic 9(8) .
+ procedure division using by value var returning varr.
+ move var to varr.
+ end program rvar32.
+
+ identification division.
+ program-id. rvar64.
+ data division.
+ linkage section.
+ 01 var pic 9(16) .
+ 01 varr pic 9(16) .
+ procedure division using by value var returning varr.
+ move var to varr.
+ end program rvar64.
+
+ identification division.
+ program-id. rvar128.
+ data division.
+ linkage section.
+ 01 var pic 9(32) .
+ 01 varr pic 9(32) .
+ procedure division using by value var returning varr.
+ move var to varr.
+ end program rvar128.
+
--- /dev/null
++12
++12
++1234
++1234
++12345678
++12345678
++1234567890123456
++1234567890123456
++12345678901234567890123456789012
++12345678901234567890123456789012
+
AM_CXXFLAGS += $(WARN_CFLAGS)
AM_CXXFLAGS += -DIN_TARGET_LIBS
AM_CXXFLAGS += -fno-strict-aliasing
+#AM_CXXFLAGS += -fstrict-aliasing -Wstrict-aliasing -Wstrict-aliasing=3
if ENABLE_DARWIN_AT_RPATH
# Handle embedded rpaths for Darwin.
build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
+#AM_CXXFLAGS += -fstrict-aliasing -Wstrict-aliasing -Wstrict-aliasing=3
# Handle embedded rpaths for Darwin.
@BUILD_LIBGCOBOL_TRUE@@ENABLE_DARWIN_AT_RPATH_TRUE@am__append_1 = -Wc,-nodefaultrpaths \
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
+ * * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following disclaimer
* in the documentation and/or other materials provided with the
* distribution.
case FldFloat:
{
- switch(length)
- {
- case 4:
- *PTRCAST(float, &retval) = *PTRCAST(float, data);
- break;
-
- case 8:
- *PTRCAST(double, &retval) = *PTRCAST(double, data);
- break;
-
- case 16:
- // *(_Float128 *)(&retval) = double(*(_Float128 *)data);
- GCOB_FP128 t;
- memcpy(&t, data, 16);
- memcpy(&retval, &t, 16);
- break;
- }
+ memcpy(&retval, data, length);
break;
}
case FldFloat:
{
- switch(dest->capacity)
- {
- case 4:
- *PTRCAST(float, dest->data) = *PTRCAST(float, (¶meter));
- break;
-
- case 8:
- *PTRCAST(double, dest->data) = *PTRCAST(double, (¶meter));
- break;
-
- case 16:
- // *(_Float128 *)(dest->data) = *(_Float128 *)¶meter;
- GCOB_FP128 t;
- memcpy(&t, ¶meter, 16);
- memcpy(dest->data, &t, 16);
- break;
- }
+ memcpy(dest->data, ¶meter, dest->capacity);
break;
}
int tally = 0;
size_t pointer = 1;
size_t nreceiver;
- size_t left;
- size_t right;
+ size_t left=0;
+ size_t right=0;
std::u32string str_id1;
std::vector<std::u32string> delimiters;
__gg__adjust_dest_size(dest, len);
}
}
+
+
+extern "C"
+__int128
+__gg__look_at_int128(__int128 val128)
+ {
+ /* This silly-looking function is included here as an aide to debugging
+ code generated at compile time. Because it is difficult to use GDB on
+ code created via GENERIC tags (there is, after all, no source code), it's
+ necessary to use things like gg_printf to do print-statement debugging on
+ such code. But there is no provision in printf for outputting __int128
+ values. So, I created this routine; during debugging I can generate a
+ call to it, and then with GDB (which can display __int128 values in
+ decimal) I can set a breakpoint here and see the value. */
+ return val128;
+ }
+
+extern "C"
+void *
+__gg__look_at_pointer(void *ptr)
+ {
+ // See comment for __gg__look_at_int128
+ return ptr;
+ }
xml_event(event_name, len, text);
}
+namespace XML {
+
static inline void
xml_event( const char event_name[], const xmlChar * value ) {
char *text = reinterpret_cast<char*>(const_cast<xmlChar*>(value));
- xml_event(event_name, strlen(text), text);
+ ::xml_event(event_name, strlen(text), text);
}
/*
int len)
{
SAYSO_DATA(len, data);
- xml_event("CONTENT-CHARACTERS", len, data);
+ ::xml_event("CONTENT-CHARACTERS", len, data);
}
static void characters(void * CTX,
int len)
{
SAYSO_DATA(len, data);
- xml_event("CONTENT-CHARACTERS", len, data);
+ ::xml_event("CONTENT-CHARACTERS", len, data);
}
static void comment(void * CTX, const xmlChar * value) {
return erc;
}
-
+} // end XML namespace