- Oracle® Solaris Studio 12.4: C User's Guide
- Document Information
- Using This Documentation
- Chapter 1 Introduction to the C Compiler
- Chapter 2 C-Compiler Implementation-Specific Information
- Chapter 3 Parallelizing C Code
- Chapter 4 lint Source
Code Checker
- Chapter 5 Type-Based Alias Analysis
- 5.1 Introduction to Type-Based Analysis
- 5.2 Using Pragmas for Finer Control
- 5.2.1 #pragma alias_level level (list)
- 5.2.1.1 #pragma alias (type, type [, type]…)
- 5.2.1.2 #pragma alias (pointer, pointer [, pointer]…)
- 5.2.1.3 #pragma may_point_to (pointer, variable [, variable]…)
- 5.2.1.4 #pragma noalias (type, type [, type]…)
- 5.2.1.5 #pragma noalias (pointer, pointer [, pointer]…)
- 5.2.1.6 #pragma may_not_point_to (pointer, variable [, variable]…)
- 5.2.1.7 #pragma ivdep
- 5.3 Checking With lint
- 5.4 Examples of Memory Reference Constraints
- Chapter 6 Transitioning to ISO C
- Chapter 7 Converting Applications for
a 64-Bit Environment
- Chapter 8 cscope:
Interactively Examining a C Program
- Appendix A Compiler Options Grouped by
Functionality
- Appendix B C Compiler Options Reference
- B.1 Option Syntax
- B.2 cc Options
- B.2.1 -#
- B.2.2 -###
- B.2.3 Aname[(tokens)]
- B.2.4 -ansi
- B.2.5 -B[static|dynamic]
- B.2.6 -C
- B.2.7 -c
- B.2.8 -Dname[(arg[,arg])][=expansion]
- B.2.9 -d[y|n]
- B.2.10 -dalign
- B.2.11 -E
- B.2.12 -errfmt[=[no%]error]
- B.2.13 -errhdr[=h]
- B.2.14 -erroff[=t]
- B.2.15 -errshort[=i]
- B.2.16 -errtags[=a]
- B.2.17 -errwarn[=t]
- B.2.18 -fast
- B.2.19 -fd
- B.2.20 -features=[v]
- B.2.21 -flags
- B.2.22 -flteval[={any|2}]
- B.2.23 fma[={none|fused}]
- B.2.24 -fnonstd
- B.2.25 -fns[={no|yes}]
- B.2.26 -fopenmp
- B.2.27 -fPIC
- B.2.28 -fpic
- B.2.29 -fprecision=p
- B.2.30 -fround=r
- B.2.31 -fsimple[=n]
- B.2.32 -fsingle
- B.2.33 -fstore
- B.2.34 -ftrap=t[,t...]
- B.2.35 -G
- B.2.36 -g
- B.2.37 -g[n]
- B.2.38 -H
- B.2.39 -h
name
- B.2.40 -I[-|dir]
- B.2.41 -i
- B.2.42 include
filename
- B.2.43 -KPIC
- B.2.44 -Kpic
- B.2.45 -keeptmp
- B.2.46 -Ldir
- B.2.47 -lname
- B.2.48 -library=sunperf
- B.2.49 m32|m64
- B.2.50 -mc
- B.2.51 -misalign
- B.2.52 -misalign2
- B.2.53 -mr[,string]
- B.2.54 -mt[={yes|no}]
- B.2.55 -native
- B.2.56 -nofstore
- B.2.57 -O
- B.2.58 -o
filename
- B.2.59 -P
- B.2.60 -p
- B.2.61 –pedantic{=[yes|no]}
- B.2.62 –preserve_argvalues[=simple|none|complete]
- B.2.63 –Qoption
phase option[,option..]
- B.2.64 -Q[y|n]
- B.2.65 -qp
- B.2.66 -Rdir[:dir]
- B.2.67 -S
- B.2.68 -s
- B.2.69 -staticlib=[no%]sunperf
- B.2.70 –std=value
- B.2.71 –temp=path
- B.2.72 -traceback[={%none|common|signals_list}]
- B.2.73 -Uname
- B.2.74 -V
- B.2.75 -v
- B.2.76 -Wc,arg
- B.2.77 -w
- B.2.78 -X[c|a|t|s]
- B.2.79 -x386
- B.2.80 -x486
- B.2.81 -Xlinker
arg
- B.2.82 -xaddr32[=yes|no]
- B.2.83 -xalias_level[=l]
- B.2.84 -xanalyze={code|%none}
- B.2.85 xannotate[=yes|no]
- B.2.86 –xarch=isa
- B.2.87 -xautopar
- B.2.88 -xbinopt={prepare|off}
- B.2.89 -xbuiltin[=(%all|%default|%none)]
- B.2.90 -xCC
- B.2.91 -xc99[=o]
- B.2.92 -xcache[=c]
- B.2.93 –xcg[89|92]
- B.2.94 -xchar[=o]
- B.2.95 -xchar_byte_order[=o]
- B.2.96 -xcheck[=o[,o]]
- B.2.97 -xchip[=c]
- B.2.98 -xcode[=v]
- B.2.99 -xcrossfile
- B.2.100 -xcsi
- B.2.101 -xdebugformat=[stabs|dwarf]
- B.2.102 -xdebuginfo=a[,a...]
- B.2.103 -xdepend=[yes|no]
- B.2.104 -xdryrun
- B.2.105 -xdumpmacros[=value[,value...]]
- B.2.106 -xe
- B.2.107 xF[=v[,v...]]
- B.2.108 -xglobalize[={yes|no}]
- B.2.109 -xhelp=flags
- B.2.110 -xhwcprof
- B.2.111 -xinline=list
- B.2.112 xinline_param=a[,a[,a]...]
- B.2.113 xinline_report[=n]
- B.2.114 xinstrument=[no%]datarace
- B.2.115 -xipo[=a]
- B.2.116 -xipo_archive=[a]
- B.2.117 -xipo_build=[yes|no]
- B.2.118 -xivdep[=p]
- B.2.119 -xjobs{=n|auto}
- B.2.120 -xkeep_unref[={[no%]funcs,[no%]vars}]
- B.2.121 -xkeepframe[=[%all,%none,name,no%name]]
- B.2.122 -xlang=language
- B.2.123 -xldscope={v}
- B.2.124 -xlibmieee
- B.2.125 -xlibmil
- B.2.126 -xlibmopt
- B.2.127 -xlic_lib=sunperf
- B.2.128 -xlicinfo
- B.2.129 -xlinkopt[=level]
- B.2.130 -xloopinfo
- B.2.131 -xM
- B.2.132 -xM1
- B.2.133 -xMD
- B.2.134 -xMF
filename
- B.2.135 -xMMD
- B.2.136 -xMerge
- B.2.137 -xmaxopt[=v]
- B.2.138 -xmemalign=ab
- B.2.139 -xmodel=[a]
- B.2.140 -xnolib
- B.2.141 -xnolibmil
- B.2.142 -xnolibmopt
- B.2.143 xnorunpath
- B.2.144 -xO[1|2|3|4|5]
- B.2.145 -xopenmp[={parallel|noopt|none}]
- B.2.146 -xP
- B.2.147 -xpagesize=n
- B.2.148 -xpagesize_heap=n
- B.2.149 -xpagesize_stack=n
- B.2.150 -xpatchpadding[={fix|patch|size}]
- B.2.151 -xpch=v
- B.2.152 -xpchstop=[file|<include>]
- B.2.153 xpec[={yes|no}]
- B.2.154 -xpentium
- B.2.155 -xpg
- B.2.156 -xprefetch[=val[,val]]
- B.2.157 -xprefetch_auto_type=a
- B.2.158 -xprefetch_level=l
- B.2.159 -xprevise={yes|no}
- B.2.160 –xprofile=p
- B.2.161 -xprofile_ircache[=path]
- B.2.162 -xprofile_pathmap
- B.2.163 -xreduction
- B.2.164 -xregs=r[,r…]
- B.2.165 -xrestrict[=f]
- B.2.166 –xs[={yes|no}]
- B.2.167 -xsafe=mem
- B.2.168 -xsegment_align=n
- B.2.169 -xsfpconst
- B.2.170 -xspace
- B.2.171 -xstrconst
- B.2.172 -xtarget=t
- B.2.173 -xtemp=path
- B.2.174 -xthreadvar[=o]
- B.2.175 -xthroughput[={yes|no}]
- B.2.176 -xtime
- B.2.177 -xtransition
- B.2.178 -xtrigraphs[={yes|no}]
- B.2.179 -xunboundsym={yes|no}
- B.2.180 -xunroll=n
- B.2.181 -xustr={ascii_utf16_ushort|no}
- B.2.182 -xvector[=a]
- B.2.183 -xvis
- B.2.184 -xvpara
- B.2.185 -Yc,
dir
- B.2.186 -YA,
dir
- B.2.187 -YI,
dir
- B.2.188 -YP,
dir
- B.2.189 -YS,
dir
- B.2.190 -Zll
- B.3 Options Passed to the Linker
- B.4 User-Supplied Default Options File
- Appendix C Features of C11
- Appendix D Features of C99
- Appendix E Implementation-Defined ISO/IEC
C99 Behavior
- Appendix F Implementation-Defined ISO/IEC
C90 Behavior
- Appendix G ISO C Data Representations
- Appendix H Performance Tuning
- Appendix I Oracle Solaris Studio C: Differences
Between K&R C and ISO C
- Index
C
- C compiler
- changing default dirs searched for librariesOption Syntax
- compilation modes and dependenciesPredefined Identifier __STDC__
- compiling a program
- Option Syntax
- Option Syntax
- componentsOrganization of the C Compilation System
- options passed to linkerOptions Passed to the Linker
- C programming toolsC-Related Programming Tools
- C99
- // comment indicatorsCommenting Code With //
- __func__ support__func__ Support
- _Pragma_Pragma
- array declaratorStatic and Other Type Qualifiers
Allowed in Array Declarators
- flexible array membersFlexible Array Members
- FLT_EVAL_METHODPrecision of Floating Point Evaluators
- idempotent qualifiersIdempotent Qualifiers
- implicit function declaration inDisallowed Implicit int and Implicit
Function Declarations
- inline function specifierinline Functions
- list of keywordsC99 Keywords
- mixed declarations and codeMixed Declarations and Code
- Studio compiler implementation ofImplementation-defined Behavior (J.3 )
- type declaration in for loopDeclaration in for-Loop Statement
- type specifier requirementDeclarations Using Implicit int
- variable length arraysVariable Length Arrays (VLA):
- cache, as used by optimizer-xcache[=c]
- calloc functionLibrary Functions (J.3.12)
- case statementsStatements (G.3.12)
- cc command-line optionscc Options
- -###-###
- -#-#
- -AAname[(tokens)]
- -ansi-ansi
- -B-B[static|dynamic]
- -C-C
- -c-c
- -d
- -G
- -d[y|n]
- interaction with -G-G
- -E-E
- -errfmt-errfmt[=[no%]error]
- -erroff-erroff[=t]
- -errshort-errshort[=i]
- -errtags-errtags[=a]
- -errwarn-errwarn[=t]
- -fast-fast
- -fd-fd
- -features-features=[v]
- -flags-flags
- -flteval-flteval[={any|2}]
- interaction with FLT_EVAL_METHODFLT_EVAL_METHOD Values
- -fma
- as part of -fast expansion-fast Expansion Flags
- -fns-fns[={no|yes}]
- as part of -fast expansion-fast Expansion Flags
- -fopenmp-fopenmp
- -fprecision-fprecision=p
- interaction with FLT_EVAL_METHODFLT_EVAL_METHOD Values
- -fround-fround=r
- interaction with -xlibmopt-xlibmopt
- -fsimple-fsimple[=n]
- as part of -fast expansion-fast Expansion Flags
- -fsingle-fsingle
- as part of -fast expansion-fast Expansion Flags
- interaction with FLT_EVAL_METHODFLT_EVAL_METHOD Values
- -fstore-fstore
- -ftrap-ftrap=t[,t...]
- -G-G
- -g-g
- -gn-g[n]
- -H-H
- -h-h
name
- -I-I[-|dir]
- -i-i
- -includeinclude
filename
- -keeptmp-keeptmp
- -KPIC-KPIC
- -Kpic-Kpic
- -L-Ldir
- -l-lname
- -library=sunperf-library=sunperf
- -mc-mc
- -mr-mr[,string]
- -mt-mt[={yes|no}]
- -native-native
- -nofstore-nofstore
- as part of -fast expansion-fast Expansion Flags
- -O-O
- -o-o
filename
- -P-P
- -pedantic–pedantic{=[yes|no]}
- -preserve_argvalues–preserve_argvalues[=simple|none|complete]
- -Q-Q[y|n]
- -Qoption–Qoption
phase option[,option..]
- -qp-qp
- -R-Rdir[:dir]
- -S-S
- -s-s
- -std–std=value
- -temp–temp=path
- -traceback-traceback[={%none|common|signals_list}]
- -U-Uname
- -V-V
- -v-v
- -W-Wc,arg
- -w-w
- -X-X[c|a|t|s]
- interaction with FLT_EVAL_METHODFLT_EVAL_METHOD Values
- -xaddr32-xaddr32[=yes|no]
- -xalias_level-xalias_level[=l]
- as part of -fast expansion-fast Expansion Flags
- examples
- Example: Using a Pragma
- Examples of Memory Reference Constraints
- explanationIntroduction to Type-Based Analysis
- -xannotatexannotate[=yes|no]
- -xarch
- interaction with FLT_EVAL_METHODFLT_EVAL_METHOD Values
- -xautopar-xautopar
- -xbinopt-xbinopt={prepare|off}
- -xbuiltin-xbuiltin[=(%all|%default|%none)]
- as part of -fast expansion-fast Expansion Flags
- -xc99-xc99[=o]
- -xCC-xCC
- -xchar-xchar[=o]
- -xchar_byte_order-xchar_byte_order[=o]
- -xcheck-xcheck[=o[,o]]
- -xchip-xchip[=c]
- -xcode-xcode[=v]
- -xcsi-xcsi
- -xdebugformat-xdebugformat=[stabs|dwarf]
- -xdebuginfo-xdebuginfo=a[,a...]
- -xdepend-xdepend=[yes|no]
- -xdryrun-xdryrun
- -xdumpmacros-xdumpmacros[=value[,value...]]
- -xe-xe
- -xFxF[=v[,v...]]
- -xglobalize-xglobalize[={yes|no}]
- -xhelp-xhelp=flags
- -xhwcprof-xhwcprof
- -xinline-xinline=list
- -xinline_paramxinline_param=a[,a[,a]...]
- -xinline_reportxinline_report[=n]
- -xipo-xipo[=a]
- -xipo_archive-xipo_archive=[a]
- -xipo_build-xipo_build=[yes|no]
- -xjobs-xjobs{=n|auto}
- -xkeepframe-xkeepframe[=[%all,%none,name,no%name]]
- -xlang-xlang=language
- -xldscope
- -xldscope={v}
- Linker Scoping Specifiers
- -xlibmieee-xlibmieee
- -xlibmil-xlibmil
- as part of -fast expansion-fast Expansion Flags
- -xlibmopt-xlibmopt
- as part of -fast expansion-fast Expansion Flags
- -xlinkopt-xlinkopt[=level]
- interaction with -G-xlinkopt[=level]
- -xloopinfo-xloopinfo
- -xM1-xM1
- -xM-xM
- -xmaxopt-xmaxopt[=v]
- interaction with -xO-xmaxopt[=v]
- -xMD-xMD
- -xmemalign-xmemalign=ab
- as part of -fast expansion-fast Expansion Flags
- -xMerge-xMerge
- -xMF-xMF
filename
- -xMMD-xMMD
- -xmodel-xmodel=[a]
- -xnolib-xnolib
- -xnolibmil-xnolibmil
- -xnolibmopt-xnolibmopt
- interaction with -xlibmopt-xlibmopt
- -xO-xO[1|2|3|4|5]
- interaction with -xmaxopt-xO[1|2|3|4|5]
- -xopenmp-xopenmp[={parallel|noopt|none}]
- -xP-xP
- -xpagesize-xpagesize=n
- -xpagesize_heap-xpagesize_heap=n
- -xpagesize_stack-xpagesize_stack=n
- -xpch-xpch=v
- -xpchstop-xpchstop=[file|<include>]
- -xpecxpec[={yes|no}]
- -xpentium-xpentium
- -xpg-xpg
- -xprefetch-xprefetch[=val[,val]]
- -xprefetch_auto_type-xprefetch_auto_type=a
- -xprefetch_level-xprefetch_level=l
- -xprevise-xprevise={yes|no}
- -xprofile–xprofile=p
- -xprofile_ircache-xprofile_ircache[=path]
- -xprofile_pathmap-xprofile_pathmap
- -xreduction-xreduction
- -xregs-xregs=r[,r…]
- -xrestrict-xrestrict[=f]
- -xs–xs[={yes|no}]
- -xsafe-xsafe=mem
- -xsegment_align-xsegment_align=n
- -xsfpconst-xsfpconst
- -xspace-xspace
- -xstrconst-xstrconst
- -xtarget-xtarget=t
- -xtemp-xtemp=path
- -xthroughput-xthroughput[={yes|no}]
- -xtime-xtime
- -xtransition-xtransition
- warning for trigraphsTrigraph Sequences
- -xtrigraphs-xtrigraphs[={yes|no}]
- -xunboundsym-xunboundsym={yes|no}
- -xunroll-xunroll=n
- -xustr-xustr={ascii_utf16_ushort|no}
- -xvector-xvector[=a]
- -xvis-xvis
- -xvpara-xvpara
- -Y-Yc,
dir
- -YA-YA,
dir
- -YI-YI,
dir
- -YP
- -YP,
dir
- Option Syntax
- -YS-YS,
dir
- -Zll-Zll
- cftime functionThe -errsecurity Flags
- cg (code generator)Components of the C Compilation System
- char
- signedness of-xchar[=o]
- character
- bits in set(5.2.4.2.1) The number of bits in a character in
the execution character set:
- decimal point(7.1.1) The decimal-point character:
- mapping setCharacters (G.3.4)
- multibyte, shift status(5.2.1.2) The shift states used for the encoding
of multibyte characters:
- set, collation sequence(7.11.4.4) The collation sequence of the execution
character set:
- single-character character-constant(6.8.1) Whether the value of a single-character character
constant in a constant expression that controls conditional inclusion matches
the value of the same character constant in the execution character set:
- source and execution of set(5.2.1) The members of the source and execution character
sets, except as explicitly specified in the Standard:
- space(7.9.2) Whether space characters that are written
out to a text stream immediately before a new-line character appear when read
in:
- testing of sets(7.3.1) The sets of characters tested for by the isalnum, isalpha, iscntrl, islower, isprint, and isupper functions:
- clock function
- (7.12.2.1) The era for the clock function
- Library Functions (J.3.12)
- code generatorComponents of the C Compilation System
- code optimization
- by using -fast-fast
- optimizerComponents of the C Compilation System
- with -xO-xO[1|2|3|4|5]
- comments
- preventing removal by preprocessor-C
- using // by issuing -xCC-xCC
- using // in C99Commenting Code With //
- compatibility options-X[c|a|t|s]
- compiler commentary in object file, reading with er_src utility-xbuiltin[=(%all|%default|%none)]
- computed gotoLabels as Values
- consistency checks by lintConsistency Checks
- constSingle Compilation Compatibility
- constconst and volatile
- constants
- promotion of integralIntegral Constants
- specific to Solaris Studio C ISO CCharacter Constants
- specific to Solaris Studio ISO CConstants
- conversions
- Usual Arithmetic Conversions
- Usual Arithmetic Conversions
- integers(6.2.1.2) The result of converting an integer to
a shorter signed integer, or the result of converting an unsigned integer
to a signed integer of equal length, if the value cannot be represented:
- cool tools URLxpec[={yes|no}]
- coverage analysis (tcov)–xprofile=p
- cpp (C preprocessor)Components of the C Compilation System
- creat functionThe -errsecurity Flags
- cscope
- Command-Line Syntax for Editors
- cscope:
Interactively Examining a C Program
- cscope:
Interactively Examining a C Program
- command-line use
- Command-Line Options
- Command-Line Options
- Step 2: Invoke the cscope Program
- Step 2: Invoke the cscope Program
- editing source files
- Command-Line Syntax for Editors
- Command-Line Syntax for Editors
- Step 4: Edit the Code
- Step 4: Edit the Code
- Step 1: Set Up the Environment
- Step 1: Set Up the Environment
- environment setup
- Command-Line Syntax for Editors
- Step 1: Set Up the Environment
- Step 1: Set Up the Environment
- environment variables
- View Paths
- View Paths
- searching source files
- Commands for Use After an Initial Search
- Step 3: Locate the Code
- Step 1: Set Up the Environment
- The cscope Process
- The cscope Process
- usage examples
- Changing the Value of a Variable
- Examples
- Step 4: Edit the Code
- Basic Use