H-Series Application Migration Guide (H06.03+)

Contents
H-Series Application Migration Guide429855-006
iii
5. Native C and C++ Migration Tasks
5. Native C and C++ Migration Tasks
Using the TNS/E Native C and C++ Compilers 5-1
Possible Source Code Changes 5-2
Check Programs that Use NaN Values 5-2
Change Programs that Rely on Proprietary Floating-Point Format 5-2
Check C/C++ Main Routine Object File Name 5-2
Check Programs With Variable-Length Parameter Lists 5-3
Using setjmp() in Functions Marked as Inline 5-3
Using the semctl() Function With a Fourth Parameter 5-3
Check Use of Feature Test Macro 5-4
Changed Pragmas and Flags 5-4
Changed Pragmas 5-5
INSPECT/NOINSPECT Pragmas Select Different Debuggers 5-5
C89 Flags Changed 5-6
Using Conditional Compilation in C and C++ Programs 5-6
Native C and C++ Run-Time Library and Tools.h++ Migration Issues 5-7
Library Names Changed 5-8
Tools.h++ Version 6 Class Library Not Supported 5-8
Toolsh++ TLHMAP File Names Changed 5-8
Migrating to the C++ Standard Library VERSION2 5-9
Migrating to the C++ Standard Library VERSION3 5-9
LIBCOBEY and libc.obey Files Replaced 5-10
OSS Programs That Use Pthreads 5-10
Using the C++ Neutral Dialect 5-10
Undefined Behavior in C and C++ Programs 5-11
New H-Series C and C++ Features 5-11
Pragmas 5-12
Maximum Data Alignment 5-12
64-Bit Data Type and String Conversion Functions 5-12
6. Native COBOL Migration Tasks
Using the TNS/E Native COBOL Compiler 6-1
Directives Changed 6-2
Removal Optional 6-2
Possible Changes Required 6-2
RENAMES Clause Has Different Behavior 6-3
Symbol Dictionary Requires More Space 6-4
TNS/E COBOL Uses IEEE Floating-Point Format 6-5
Alignment of Level-01 and Level-77 Data Items Changed 6-5