36
IBM XL C/C++ for AIX, V16.1 What's New for XL C/C++ Version 16.1 GC27-8053-00 IBM

XL C/C++: What's New for XL C/C++...C/C++ Compiler Refer ence. A new manual page for the Clang-based front end IBM XL C/C++ for AIX, V16.1 adds a manual page for the Clang-based fr

  • Upload
    others

  • View
    34

  • Download
    1

Embed Size (px)

Citation preview

IBM XL C/C++ for AIX, V16.1

What's New for XL C/C++Version 16.1

GC27-8053-00

IBM

IBM XL C/C++ for AIX, V16.1

What's New for XL C/C++Version 16.1

GC27-8053-00

IBM

NoteBefore using this information and the product it supports, read the information in “Notices” on page 21.

First edition

This edition applies to IBM XL C/C++ for AIX, V16.1 (Program 5765-J12; 5725-C72) and to all subsequent releasesand modifications until otherwise indicated in new editions. Make sure you are using the correct edition for thelevel of the product.

© Copyright IBM Corporation 2018.US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contractwith IBM Corp.

Contents

About this document . . . . . . . . . vWho should read this document . . . . . . . . vHow to send your comments . . . . . . . . . v

Chapter 1. A new Clang-based front end 1Enhanced language standard support of theClang-based front end . . . . . . . . . . . 1Enhanced GCC compatibility of the Clang-basedfront end . . . . . . . . . . . . . . . 2A new manual page for the Clang-based front end . 2

Chapter 2. POWER9 technologyexploitation . . . . . . . . . . . . . 3

Chapter 3. Performance andoptimization . . . . . . . . . . . . . 5

Chapter 4. Compiler options and pragmadirectives . . . . . . . . . . . . . . 7

Chapter 5. Built-in functions . . . . . . 9

Chapter 6. Debugging support . . . . 11

Chapter 7. New IBM Support website 13

Chapter 8. Available help information 15

Appendix. Accessibility features forIBM XL C/C++ for AIX . . . . . . . . 19

Notices . . . . . . . . . . . . . . 21Trademarks . . . . . . . . . . . . . . 23

Index . . . . . . . . . . . . . . . 25

© Copyright IBM Corp. 2018 iii

iv XL C/C++: What's New for XL C/C++

About this document

This information provides an executive overview of new functions in the IBM® XLC/C++ for AIX®, V16.1 compiler. The topics in this information provide aframework for describing new functions in the IBM XL C/C++ for AIX, V16.1compiler. New functions are categorized according to user benefits.

Who should read this documentThis information is written primarily for people who are evaluating and planningfor IBM XL C/C++ for AIX, V16.1.

How to send your commentsYour feedback is important in helping us to provide accurate and high-qualityinformation. If you have any comments or questions about this information or anyother XL C/C++ information, send [email protected] an email.

Be sure to include the name of the manual, the part number of the manual, theversion of XL C/C++, and, if applicable, the specific location of the text you arecommenting on (for example, a page number or table number).

© Copyright IBM Corp. 2018 v

vi XL C/C++: What's New for XL C/C++

Chapter 1. A new Clang-based front end

IBM XL C/C++ for AIX, V16.1 introduces a new Clang-based front end in additionto the existing IBM legacy XL-based front end. For an explanation of the XL-basedfront end and the Clang-based front end, see A two-in-one compiler: Clang-basedfront end and XL-based front end in the Getting Started with XL C/C++.

You can invoke the Clang-based front end by using the new xlclang and xlclang++invocation commands.

Compared with the legacy XL-based front end, the new Clang-based front endprovides the following capabilities:v Enhanced language standard support:

If your programs conform to a newer language standard, like the C++11 orC++14 language standard, which is not fully supported by the legacy XL-basedfront end, you might want to compile the programs with the new Clang-basedfront end.

v Enhanced GCC compatibilities:If you are migrating your programs that were written for and compiled by GCCto IBM XL C/C++ for AIX, you might want to compile the programs with thenew Clang-based front end for better compatibility.

Attention: If your programs were written for and compiled by IBM XL C/C++for AIX earlier than V16.1 and you want to migrate all or part of your programs toxlclang/xlclang++, you must consider the differences between the XL-based frontend and the Clang-based front end during migration. For more information, seeMigration checklist when moving from xlc/xlc++ to xlclang/xlclang++.

For more information about the differences between the XL-based front end andthe Clang-based front end, see the XL C/C++ Migration Guide.

Enhanced language standard support of the Clang-based front endYou can compile your applications that conform to the C11, C++11, and C++14language standards by using the new Clang-based front end, that is to invoke IBMXL C/C++ for AIX through xlclang and xlclang++ invocation commands.

Language standards supported by the Clang-based front end

IBM XL C/C++ for AIX that is invoked by xlclang/xlclang++ fully supports thefollowing language standards:v C++14 with some dependency on hardware and version of AIXv C++11 with some dependency on hardware and version of AIXv C++03v C++98v C11 with the exception of the atomics featuresv C99v C89

© Copyright IBM Corp. 2018 1

For the details of the language standard features supported by the Clang-basedfront end, see Language standard features in the XL C/C++ Language Reference.

Language standards supported by the XL-based front end

IBM XL C/C++ for AIX that is invoked by legacy invocations, such as xlc and xlC,supports the following language standards:v C++11 (partial support)v C++03v C++98v C11 (partial support)v C99v C89

For the full list of the legacy invocations, see Legacy invocation commands in theXL C/C++ Compiler Reference. For the details of the language standard featuressupported by the XL-based front end, see C11 compatibility and C++11compatibility in the XL C/C++ Language Reference.

Enhanced GCC compatibility of the Clang-based front endMore GCC options and GCC pragmas are supported by the Clang-based front endof IBM XL C/C++ for AIX, V16.1, which is invoked by xlclang/xlclang++. Thismeans fewer migration efforts are needed when you migrate your GCC programsto IBM XL C/C++ for AIX.

GCC options supported by the Clang-based front end

Many GCC options are now supported in the Clang-based front end of IBM XLC/C++ for AIX, V16.1.

For the full list of supported GCC options, see Supported GCC options in the XLC/C++ Compiler Reference.

GCC pragmas supported by the Clang-based front end

You can compile your programs that contain the supported GCC pragmas by usingthe new xlclang and xlclang++ invocation commands with IBM XL C/C++ forAIX, V16.1.

For the full list of supported GCC pragmas, see Supported GCCpragmas in the XLC/C++ Compiler Reference.

A new manual page for the Clang-based front endIBM XL C/C++ for AIX, V16.1 adds a manual page for the Clang-based front endthat is invoked by xlclang/xlclang++.

You can look up for the instructions of all the compiler options that are supportedby the Clang-based front end in the manual page. To access the manual page, usethe steps that are detailed at Accessing the local documentation in the XL C/C++Installation Guide.

2 XL C/C++: What's New for XL C/C++

Chapter 2. POWER9 technology exploitation

Use these enhancements to exploit POWER9™ technology with IBM XL C/C++ forAIX, V16.1.

New compiler options

-qarch=pwr9The -qarch=pwr9 suboption produces object code that contains instructionsthat run on the POWER9 hardware platforms.

-qtune=pwr9The -qtune=pwr9 suboption tunes the optimizations for the POWER9hardware platforms.

New built-in functions

For all the built-in functions added in IBM XL C/C++ for AIX, V16.1 to exploit thePOWER9 architecture, see POWER9 built-in functions.

Changed built-in functions

vec_bpermGathers up to 16 1-bit values from a quadword or from each doublewordelement in the specified order, and places them in the specified order eitherin the rightmost 16 bits of the leftmost doubleword of the result vectorregister or in the rightmost 8 bits of each doubleword of the result vectorregister according to the element types, with the rest of the result set to 0.

Note: The new argument data type combination of this changed built-infunction is valid only when -qarch is set to utilize POWER9 technology.

New MASS libraries

The newly added vector library libmassvp9.a and the SIMD librarylibmass_simdp9.a contain functions that are tuned for the POWER9 architecture.

For more information, see Using the Mathematical Acceleration Subsystem (MASS)libraries.

© Copyright IBM Corp. 2018 3

4 XL C/C++: What's New for XL C/C++

Chapter 3. Performance and optimization

This topic describes features and enhancements that assist performance tuning andapplication optimization.

Dumping snapshot PDF profiling information to files duringexecution

When using profile-directed feedback (PDF) optimization in previous releases, youcould get PDF profiling information that is written to one or more PDF files onlyupon normal termination, and no PDF files could be generated upon abnormaltermination. Now you can dump PDF profiling information to one or more PDFsnapshot files during execution. This is especially useful if you want to save thegenerated PDF profiling information when the application is to be terminatedabnormally. After defining the new environment variablePDF_SIGNAL_TO_DUMP, you can use it to trigger dumping PDF profilinginformation.

For more information, see "Dumping snapshot PDF profiling information to filesduring execution" in the XL C/C++ Optimization and Programming Guide.

© Copyright IBM Corp. 2018 5

6 XL C/C++: What's New for XL C/C++

Chapter 4. Compiler options and pragma directives

This topic describes new and changed compiler options and pragma directives.

You can specify compiler options on the command line. You can also modifycompiler behavior through pragma directives embedded in your application sourcefiles. For detailed descriptions and usage information for XL C/C++ compileroptions and pragma directives, see the XL C/C++ Compiler Reference.

New compiler options

-Ofast The -Ofast option is added to imply -O3 -qhot -D__FAST_MATH__.

-qarch=pwr9The -qarch=pwr9 suboption is added to produce object code that containsinstructions that run on the POWER9 hardware platforms.

-qslmtagsThe -qslmtags option is added to control whether IBM Software LicenseMetric (SLM) Tags logging tracks compiler license usage. The -qslmtagsoption replaces the -qxflag=slmtags option in IBM XL C/C++ for AIX,V13.1.3.

-qtune=pwr9The -qtune=pwr9 suboption is added to tune the optimizations for thePOWER9 hardware platforms.

xlclang/xlclang++ -qxlcompatmacrosThe -qxlcompatmacros option is added to control definition of thefollowing legacy macros: __xlC__, __xlC_ver__, C++ __IBMCPP__ C++ ,C __IBMC__, and __xlc__ C . You might need to specify this option whenyou migrate programs from IBM XL C/C++ for AIX, V13.1.3 or earlierreleases to IBM XL C/C++ for AIX, V16.1 that is invoked by xlclang orxlclang++.

xlclang/xlclang++ In V16.1, IBM XL C/C++ for AIX starts to support many GCCoptions in the Clang-based front end that is invoked by the xlclang or xlclang++invocation command. For the option list, see Supported GCC options in the XLC/C++ Compiler Reference. xlclang/xlclang++

Changed compiler options

xlclang/xlclang++ -qaltivecThe altivec.h file is no longer implicitly included when -qaltivec is ineffect.

-qpdf1, -qpdf2When -qpdf1 or -qpdf2 is specified without a suboption, exename is thedefault suboption. When -qpdf1=exename is in effect, the generated PDFfile is named .<output_name>_pdf by default, where <output_name> is thename of the executable file.

xlclang/xlclang++

© Copyright IBM Corp. 2018 7

New pragma directives

In V16.1, IBM XL C/C++ for AIX starts to support many GCC pragmas in theClang-based front end that is invoked by the xlclang or xlclang++ invocationcommand. For the pragma list, Supported GCCpragmas in the XL C/C++ CompilerReference. xlclang/xlclang++

8 XL C/C++: What's New for XL C/C++

Chapter 5. Built-in functions

This section describes built-in functions that are new or changed for IBM XLC/C++ for AIX, V16.1.

For more information about each built-in function, see the XL C/C++ CompilerReference.

New built-in functions

POWER9 built-in functions

See POWER9 built-in functions for a full list of the built-in functions that areadded to exploit the POWER9 architecture.

POWER8® built-in functions

xlclang/xlclang++ __builtin_max xlclang/xlclang++

xlc/xlC __max xlc/xlC

Returns the value of the largest input argument.

xlclang/xlclang++ __builtin_min xlclang/xlclang++

xlc/xlC __min xlc/xlC

Returns the value of the smallest input argument.

xlclang/xlclang++ GCC built-in functions

The following GCC vector built-in functions are added:v vec_vsx_ldv vec_vsx_stv vec_xxsldiv vec_xxpermdi

These built-in functions are valid only when you include the altivec.h file andspecify the -qaltivec option. For the mappings between vector built-in functions inGCC and IBM XL C/C++ for AIX, see Supported GCC vector built-in functions.

xlclang/xlclang++

Changed built-in functions

vec_bpermGathers up to 16 1-bit values from a quadword or from each doublewordelement in the specified order, and places them in the specified order eitherin the rightmost 16 bits of the leftmost doubleword of the result vectorregister or in the rightmost 8 bits of each doubleword of the result vectorregister according to the element types, with the rest of the result set to 0.

Note: The new argument data type combination of this changed built-infunction is valid only when -qarch (-mcpu) is set to utilize POWER9technology.

xlclang/xlclang++

© Copyright IBM Corp. 2018 9

You must now include altivec.h and specify -qaltivec to use the following built-infunctions.v BCD add and subtract functionsv BCD comparisonv BCD load and store functionsv BCD test add and subtract for overflowv Vector built-in functions

xlclang/xlclang++

10 XL C/C++: What's New for XL C/C++

Chapter 6. Debugging support

IBM XL C/C++ for AIX, V16.1 provides these debugging enhancements.

xlc/xlC Support for debug at optYou can use -g8 or -g9 to get general debug at optimization support withoptimization level -O2. When the -O2 optimization level is in effect, youcan use -g8 to generate debugging information about line numbers, sourcefile names, and variables. Beyond that, if you want to modify the value ofthe variables in the debugger, use -O2 -g9.

For more information, see -g in the XL C/C++ Compiler Reference.

© Copyright IBM Corp. 2018 11

12 XL C/C++: What's New for XL C/C++

Chapter 7. New IBM Support website

IBM has introduced a new IBM Support website to replace the IBM ServiceRequest Tool.

Now, if you have an issue for IBM XL C/C++ for AIX, open a Case at the newIBM Support website at https://www.ibm.com/mysupport/s.

To learn more about this support website change, see IBM Z is moving to the newIBM Support site to replace the IBM Service Request Tool.

© Copyright IBM Corp. 2018 13

14 XL C/C++: What's New for XL C/C++

Chapter 8. Available help information

IBM XL C/C++ information

XL C/C++ provides product information in the following formats:v Quick Start Guide

The Quick Start Guide (quickstart.pdf) is intended to get you started with IBMXL C/C++ for AIX, V16.1. It is located by default in the XL C/C++ directoryand in the \quickstart directory of the installation DVD.

v README filesREADME files contain late-breaking information, including changes andcorrections to the product information. README files are located by default inthe XL C/C++ directory and in the root directory of the installation DVD.

v Installable man pagesMan pages are provided for the compiler invocations and all command-lineutilities provided with the product. Instructions for installing and accessing theman pages are provided in the IBM XL C/C++ for AIX, V16.1 Installation Guide.

v Online product documentationThe fully searchable HTML-based documentation is viewable in IBM KnowledgeCenter at http://www.ibm.com/support/knowledgecenter/SSGH3R_16.1.0/com.ibm.compilers.aix.doc/welcome.html.

v PDF documentsPDF documents are available on the web at https://www.ibm.com/support/knowledgecenter/SSGH3R_16.1.0/com.ibm.compilers.aix.doc/download_pdf.html.The following files comprise the full set of XL C/C++ product information.

Note: To ensure that you can access cross-reference links to other XL C/C++PDF documents, download and unzip the .zip file that contains all the productdocumentation files, or you can download each document into the samedirectory on your local machine.

Table 1. XL C/C++ PDF files

Document title PDF file name Description

What's New for IBM XLC/C++ for AIX, V16.1,GC27-8053-00

whats_new.pdf Provides an executive overview of newfunctions in the IBM XL C/C++ forAIX, V16.1 compiler, with newfunctions categorized according to userbenefits.

Getting Started withIBM XL C/C++ for AIX,V16.1, SC27-8055-00

getstart.pdf Contains an introduction to XL C/C++,with information about setting up andconfiguring your environment,compiling and linking programs, andtroubleshooting compilation errors.

IBM XL C/C++ for AIX,V16.1 Installation Guide,SC27-8058-00

install.pdf Contains information for installing XLC/C++ and configuring yourenvironment for basic compilation andprogram execution.

© Copyright IBM Corp. 2018 15

Table 1. XL C/C++ PDF files (continued)

Document title PDF file name Description

IBM XL C/C++ for AIX,V16.1 Migration Guide,GC27-8051-00

migrate.pdf Contains migration considerations forusing XL C/C++ to compile programsthat were previously compiled ondifferent platforms, by previous releasesof XL C/C++, or by other compilers.

IBM XL C/C++ for AIX,V16.1 CompilerReference, SC27-8057-00

compiler.pdf Contains information about the variouscompiler options, pragmas, macros,environment variables, and built-infunctions, including those used forparallel processing.

IBM XL C/C++ for AIX,V16.1 LanguageReference, SC27-8059-00

langref.pdf Contains information about the C andC++ programming languages, assupported by IBM, including languageextensions for portability andconformance to nonproprietarystandards.

IBM XL C/C++ for AIX,V16.1 Optimization andProgramming Guide,SC27-8060-00

proguide.pdf Contains information about advancedprogramming topics, such asapplication porting, interlanguage callswith Fortran code, library development,application optimization andparallelization, and the XL C/C++high-performance libraries.

Standard C++ LibraryReference, SC27-4262-02

standlib.pdf Contains reference information aboutthe standard C++ runtime libraries andheaders.

C/C++ Legacy ClassLibraries Reference,SC09-7652-00

legacy.pdf Contains reference information aboutthe USL I/O Stream Library and theComplex Mathematics Library.

To read a PDF file, use Adobe Reader. If you do not have Adobe Reader, youcan download it (subject to license terms) from the Adobe website athttp://www.adobe.com.

More information related to XL C/C++, including IBM Redbooks® publications,white papers, and other articles, is available on the web at http://www.ibm.com/support/docview.wss?uid=swg27036618.

For more information about the compiler, see the XL compiler on Power®

community at http://ibm.biz/xl-power-compilers.

Other IBM informationv Parallel Environment for AIX: Operation and Use

v The IBM Systems Information Center, at http://publib.boulder.ibm.com/infocenter/systems/index.jsp?topic=/com.ibm.aix.doc/doc/base/aixparent.htm,is a resource for AIX information.You can find the following books for your specific AIX system:– AIX Commands Reference, Volumes 1 - 6

– Technical Reference: Base Operating System and Extensions, Volumes 1 & 2

– AIX National Language Support Guide and Reference

– AIX General Programming Concepts: Writing and Debugging Programs

– AIX Assembler Language Reference

16 XL C/C++: What's New for XL C/C++

Other informationv Using the GNU Compiler Collection available at http://gcc.gnu.org/onlinedocs.

Chapter 8. Available help information 17

18 XL C/C++: What's New for XL C/C++

Appendix. Accessibility features for IBM XL C/C++ for AIX

Accessibility features assist users who have a disability, such as restricted mobilityor limited vision, to use information technology content successfully.

Accessibility features

IBM XL C/C++ for AIX uses the latest W3C Standard, WAI-ARIA 1.0(http://www.w3.org/TR/wai-aria/), to ensure compliance to US Section 508(http://www.access-board.gov/guidelines-and-standards/communications-and-it/about-the-section-508-standards/section-508-standards) and Web ContentAccessibility Guidelines (WCAG) 2.0 (http://www.w3.org/TR/WCAG20/). To takeadvantage of accessibility features, use the latest release of your screen reader incombination with the latest web browser that is supported by this product.

The IBM XL C/C++ for AIX online product documentation in IBM KnowledgeCenter is enabled for accessibility. The accessibility features of IBM KnowledgeCenter are described at IBM Knowledge Center help.

Keyboard navigation

This product uses standard navigation keys.

Interface information

You can use speech recognition software like a Text-to-speech (TTS) tool to viewthe output generated by the compiler.

The IBM XL C/C++ for AIX online product documentation is available in IBMKnowledge Center, which is viewable from a standard web browser.

PDF files have limited accessibility support. With PDF documentation, you can useoptional font enlargement, high-contrast display settings, and can navigate bykeyboard alone.

To enable your screen reader to accurately read syntax diagrams, source codeexamples, and text that contains the period or comma PICTURE symbols, youmust set the screen reader to speak all punctuation.

Related accessibility information

To learn the accessibility features of the operation systems that are supported byIBM XL C/C++ for AIX, see the following information:v IBM AIX (https://www.ibm.com/support/knowledgecenter/ssw_aix/

welcome?lang=en)v IBM i (https://www.ibm.com/support/knowledgecenter/ssw_ibm_i/

welcome?lang=en)

In addition to standard IBM help desk and support websites, IBM has establisheda TTY telephone service for use by deaf or hard of hearing customers to accesssales and support services:

© Copyright IBM Corp. 2018 19

TTY service 800-IBM-3383 (800-426-3383) (within North America)

IBM and accessibility

For more information about the commitment that IBM has to accessibility, see IBMAccessibility (www.ibm.com/able).

20 XL C/C++: What's New for XL C/C++

Notices

Programming interfaces: Intended programming interfaces allow the customer towrite programs to obtain the services of IBM XL C/C++ for AIX.

This information was developed for products and services offered in the U.S.A.IBM may not offer the products, services, or features discussed in this document inother countries. Consult your local IBM representative for information on theproducts and services currently available in your area. Any reference to an IBMproduct, program, or service is not intended to state or imply that only that IBMproduct, program, or service may be used. Any functionally equivalent product,program, or service that does not infringe any IBM intellectual property right maybe used instead. However, it is the user's responsibility to evaluate and verify theoperation of any non-IBM product, program, or service.

IBM may have patents or pending patent applications covering subject matterdescribed in this document. The furnishing of this document does not give youany license to these patents. You can send license inquiries, in writing, to:

IBM Director of LicensingIBM CorporationNorth Castle Drive, MD-NC119Armonk, NY 10504-1785U.S.A.

For license inquiries regarding double-byte (DBCS) information, contact the IBMIntellectual Property Department in your country or send inquiries, in writing, to:

Intellectual Property LicensingLegal and Intellectual Property LawIBM Japan, Ltd.19-21, Nihonbashi-Hakozakicho, Chuo-kuTokyo 103-8510, Japan

The following paragraph does not apply to the United Kingdom or any othercountry where such provisions are inconsistent with local law:INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THISPUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHEREXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIEDWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESSFOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of express orimplied warranties in certain transactions, therefore, this statement may not applyto you.

This information could include technical inaccuracies or typographical errors.Changes are periodically made to the information herein; these changes will beincorporated in new editions of the publication. IBM may make improvementsand/or changes in the product(s) and/or the program(s) described in thispublication at any time without notice.

Any references in this information to non-IBM websites are provided forconvenience only and do not in any manner serve as an endorsement of those

© Copyright IBM Corp. 2018 21

websites. The materials at those websites are not part of the materials for this IBMproduct and use of those websites is at your own risk.

IBM may use or distribute any of the information you supply in any way itbelieves appropriate without incurring any obligation to you.

Licensees of this program who want to have information about it for the purposeof enabling: (i) the exchange of information between independently createdprograms and other programs (including this one) and (ii) the mutual use of theinformation which has been exchanged, should contact:

Intellectual Property Dept. for Rational SoftwareIBM Corporation5 Technology Park DriveWestford, MA 01886U.S.A.

Such information may be available, subject to appropriate terms and conditions,including in some cases, payment of a fee.

The licensed program described in this document and all licensed materialavailable for it are provided by IBM under terms of the IBM Customer Agreement,IBM International Program License Agreement or any equivalent agreementbetween us.

Any performance data contained herein was determined in a controlledenvironment. Therefore, the results obtained in other operating environments mayvary significantly. Some measurements may have been made on development-levelsystems and there is no guarantee that these measurements will be the same ongenerally available systems. Furthermore, some measurements may have beenestimated through extrapolation. Actual results may vary. Users of this documentshould verify the applicable data for their specific environment.

Information concerning non-IBM products was obtained from the suppliers ofthose products, their published announcements or other publicly available sources.IBM has not tested those products and cannot confirm the accuracy ofperformance, compatibility or any other claims related to non-IBM products.Questions on the capabilities of non-IBM products should be addressed to thesuppliers of those products.

All statements regarding IBM's future direction or intent are subject to change orwithdrawal without notice, and represent goals and objectives only.

This information contains examples of data and reports used in daily businessoperations. To illustrate them as completely as possible, the examples include thenames of individuals, companies, brands, and products. All of these names arefictitious and any similarity to the names and addresses used by an actual businessenterprise is entirely coincidental.

COPYRIGHT LICENSE:

This information contains sample application programs in source language, whichillustrates programming techniques on various operating platforms. You may copy,modify, and distribute these sample programs in any form without payment toIBM, for the purposes of developing, using, marketing or distributing applicationprograms conforming to the application programming interface for the operating

22 XL C/C++: What's New for XL C/C++

platform for which the sample programs are written. These examples have notbeen thoroughly tested under all conditions. IBM, therefore, cannot guarantee orimply reliability, serviceability, or function of these programs. The sampleprograms are provided “AS IS”, without warranty of any kind. IBM shall not beliable for any damages arising out of your use of the sample programs.

Each copy or any portion of these sample programs or any derivative work, mustinclude a copyright notice as follows:

© (your company name) (year). Portions of this code are derived from IBM Corp.Sample Programs. © Copyright IBM Corp. 1998, 2018.

PRIVACY POLICY CONSIDERATIONS:

IBM Software products, including software as a service solutions, (“SoftwareOfferings”) may use cookies or other technologies to collect product usageinformation, to help improve the end user experience, or to tailor interactions withthe end user, or for other purposes. In many cases no personally identifiableinformation is collected by the Software Offerings. Some of our Software Offeringscan help enable you to collect personally identifiable information. If this SoftwareOffering uses cookies to collect personally identifiable information, specificinformation about this offering's use of cookies is set forth below.

This Software Offering does not use cookies or other technologies to collectpersonally identifiable information.

If the configurations deployed for this Software Offering provide you as customerthe ability to collect personally identifiable information from end users via cookiesand other technologies, you should seek your own legal advice about any lawsapplicable to such data collection, including any requirements for notice andconsent.

For more information about the use of various technologies, including cookies, forthese purposes, see IBM's Privacy Policy at http://www.ibm.com/privacy andIBM's Online Privacy Statement at http://www.ibm.com/privacy/details in thesection entitled “Cookies, Web Beacons and Other Technologies,” and the “IBMSoftware Products and Software-as-a-Service Privacy Statement” athttp://www.ibm.com/software/info/product-privacy.

TrademarksIBM, the IBM logo, and ibm.com are trademarks or registered trademarks ofInternational Business Machines Corp., registered in many jurisdictions worldwide.Other product and service names might be trademarks of IBM or other companies.A current list of IBM trademarks is available on the web at “Copyright andtrademark information” at http://www.ibm.com/legal/copytrade.shtml.

Adobe and the Adobe logo are either registered trademarks or trademarks ofAdobe Systems Incorporated in the United States, other countries, or both.

Linux is a registered trademark of Linus Torvalds in the United States, othercountries, or both.

UNIX is a registered trademark of The Open Group in the United States and othercountries.

Notices 23

24 XL C/C++: What's New for XL C/C++

Index

Aaccessibility

interfaces 19keyboard navigation 19

CC++11 language standard

invocation command 1xlclang++ 1

C11 language standardinvocation command 1xlclang 1

GGCC options

invocation command 2xlclang 2xlclang++ 2

GCC pragmasinvocation command 2xlclang 2xlclang++ 2

© Copyright IBM Corp. 2018 25

26 XL C/C++: What's New for XL C/C++

IBM®

Product Number: 5765-J12; 5725-C72

Printed in USA

GC27-8053-00