C Compilers Reference
1 Introduction
-
- What's in this Reference?
-
- Where to Look for Related Information
-
- Read the Release Notes!
-
- What's New
-
- CodeWarrior Year 2000 Compliance
-
- Conventions Used in This Reference
2 Using C/C++ in the CodeWarrior IDE
-
- C/C++ Language Panel
-
- C/C++ Warnings Panel
3 C Compiler
-
- C Compiler Overview
-
- Identifiers
-
- Header Files
-
- Prefix Files
-
- Sizeof() Operator
-
- Volatile Variables
-
- Enumerated Types
-
- Extensions to ANSI/ISO C
-
- ANSI Strict
-
- Using the wchar_t Type
-
- C++ Style Comments
-
- Unnamed Arguments in Function Definitions
-
- A # not Followed by Argument in a Macro
-
- Using an Identifier After #endif
-
- Using Typecasted Pointers as lvalues
-
- Declaring Variables By Address
-
- ANSI Keywords Only
-
- Expand Trigraphs
-
- Character Constants as Integer Values
-
- Inlining
-
- Multibyte Strings and Comments
-
- Pool Strings
-
- Reusing Strings
-
- Require Function Prototypes
-
- Map Newlines to CR
-
- Relaxed Pointer Type Rules
-
- Use Unsigned Chars
-
- Using 64-bit Integers
-
- Converting Pointers to Types of the Same Size
-
- Getting Alignment and Type Information at Compile-Time
-
- Arrays of Zero Length in Structures
-
- Intrinsic Functions for Bit Rotation
-
- The "D" Constant Suffix
-
- The short double Data Type
-
- The __typeof__() and typeof() operators
-
- Initialization of Local Arrays and Structures
-
- Ranges in case statements
-
- The __FUNCTION__ Predefined Identifier
4 C++ Compiler
-
- C++ Compiler Overview
-
- CodeWarrior Implementation of C++
-
- Implicit Return Statement for main()
-
- Keyword Ordering
-
- Additional Keywords
-
- Conversions in the Conditional Operator
-
- Default Arguments in Member Functions
-
- Local Class Declarations with Inline Functions
-
- Copying and Constructing Class Objects
-
- Checking for Resources To Initialize Static Data
-
- Calling an Inherited Member Function
-
- Unsupported Extensions
-
- Extensions to ANSI/ISO Standard C++
-
- The __PRETTY_FUNCTION__ Predefined Identifier
-
- Controlling the C++ Compiler
-
- Using the C++ Compiler Always
-
- Controlling ARM Conformance
-
- Controlling Exception Handling
-
- Controlling RTTI
-
- Using the bool Type
-
- Controlling C++ Extensions
-
- Working With C++ Exceptions
-
- Working With RTTI
-
- Using the dynamic_cast Operator
-
- Using the typeid Operator
-
- Working With Templates
-
- Declaring and Defining Templates
-
- Instantiating a Template
5 C++ and Embedded Systems
-
- C++ and Embedded Systems Overview
-
- Activating EC++
-
- Differences Between ANSI/ISO C++ and EC++
-
- Templates
-
- Libraries
-
- File Operations
-
- Localization
-
- Exception Handling
-
- Other Language Features
-
- Meeting EC++ Specifications With CodeWarrior
-
- Language Related Issues
-
- Library Related Issues
-
- Strategies for Smaller Code Size in C++
-
- Size Optimizations
-
- Inlining
-
- Virtual Functions
-
- Runtime Type Identification
-
- Exception Handling
-
- Operator New
-
- Multiple Inheritance
-
- Virtual Inheritance
-
- Stream-Based Classes
-
- Alternative Class Libraries
6 Preventing Errors & Bugs
-
- CodeWarrior C/C++ Errors and Warnings
-
- Treating All Warnings as Errors
-
- Catching Illegal Pragmas
-
- Catching Empty Declarations
-
- Avoid Unintentional Errors
-
- Finding Unused Variables
-
- Finding Unused Arguments
-
- Ignoring Extra Commas
-
- Suspicious Assignments to Enumerations and Incorrect Function
Returns
-
- Finding Hidden Virtual Functions
-
- Finding Implicit Arithmetic Conversions
-
- Finding inline Functions That Are Not Inlined
-
- Catching Mixed Use of `class' and `struct' Keywords
-
- Catching Redundant Statements
-
- Finding Realigned Data Structures
-
- Finding Ignored Function Results
7 Predefined Symbols
-
- ANSI Predefined Symbols
-
- Metrowerks Predefined Symbols
-
- Checking Options
8 Pragmas
-
- Pragmas Overview
-
- Pragma Syntax
-
- Pragma Scope
-
- Pragmas
-
- a6frames
-
- align
-
- align_array_members
-
- altivec_codegen
-
- altivec_model
-
- altivec_vrsave
-
- always_inline
-
- ANSI_strict
-
- arg_dep_lookup
-
- ARM_conform
-
- auto_inline
-
- bool
-
- check_header_flags
-
- code_seg
-
- code68020
-
- code68881
-
- codeColdFire
-
- const_multiply
-
- cplusplus
-
- cpp_extensions
-
- d0_pointers
-
- data_seg
-
- def_inherited
-
- defer_codegen
-
- define_section
-
- direct_destruction
-
- direct_to_som
-
- disable_registers
-
- dollar_identifiers
-
- dont_inline
-
- dont_reuse_strings
-
- ecplusplus
-
- EIPC_EIPSW
-
- enumsalwaysint
-
- exceptions
-
- export
-
- extended_errorcheck
-
- far_code, near_code, smart_code
-
- far_data
-
- far_strings
-
- far_vtables
-
- faster_pch_gen
-
- float_constants
-
- force_active
-
- fourbyteints
-
- fp_contract
-
- fp_pilot_traps
-
- fullpath_prepdump
-
- function
-
- function_align
-
- gcc_extensions
-
- global_optimizer
-
- IEEEdoubles
-
- ignore_oldstyle
-
- import
-
- init_seg
-
- inline_bottom_up
-
- inline_depth
-
- inline_intrinsics
-
- internal
-
- interrupt
-
- interrupt_fast
-
- k63d
-
- k63d_calls
-
- lib_export
-
- line_prepdump
-
- longlong
-
- longlong_enums
-
- longlong_prepval
-
- macsbug
-
- mark
-
- message
-
- microsoft_exceptions
-
- microsoft_RTTI
-
- mmx
-
- mmx_call
-
- mpwc
-
- mpwc_newline
-
- mpwc_relax
-
- no_register_coloring
-
- no_static_dtors
-
- once
-
- only_std_keywords
-
- opt_common_subs
-
- opt_dead_assignments
-
- opt_dead_code
-
- opt_lifetimes
-
- opt_loop_invariants
-
- opt_propagation
-
- opt_strength_reduction
-
- opt_strength_reduction_strict
-
- opt_unroll_loops
-
- opt_vectorize_loops
-
- optimization_level
-
- optimize_for_size
-
- oldstyle_symbols
-
- pack
-
- parameter
-
- pcrelstrings
-
- peephole
-
- ppc_unroll_factor_limit
-
- ppc_unroll_instructions_limit
-
- ppc_unroll_speculative
-
- pointers_in_A0, pointers_in_D0
-
- pool_data
-
- pool_strings
-
- pop, push
-
- precompile_target
-
- profile
-
- readonly_strings
-
- register_coloring
-
- require_prototypes
-
- RTTI
-
- schedule
-
- scheduling
-
- SDS_debug_support
-
- section
-
- segment
-
- side_effects
-
- simple_prepdump
-
- SOM-Call-Optimization
-
- SOMCallStyle
-
- SOMCheckEnvironment
-
- SOMClassVersion
-
- SOMMetaClass
-
- SOMReleaseOrder
-
- stack_cleanup
-
- static_inlines
-
- suppress_init_code
-
- supress_warnings
-
- sym
-
- syspath_once
-
- toc_data
-
- trigraphs
-
- traceback
-
- unsigned_char
-
- unused
-
- use_fp_instructions
-
- use_frame
-
- use_mask_registers
-
- warn_emptydecl
-
- warning_errors
-
- warn_extracomma
-
- warn_hidevirtual
-
- warn_illegal_instructions
-
- warn_illpragma
-
- warn_implicitconv
-
- warn_no_side_effect
-
- warn_notinlined
-
- warn_padding
-
- warn_possunwant
-
- warn_resultnotused
-
- warn_structclass
-
- warn_unusedarg
-
- warn_unusedvar
-
- warning
-
- wchar_type
Index
Visit the Metrowerks website at: http://www.metrowerks.com
For assistance contact Metrowerks Technical Support at: cw_support@metrowerks.com
Copyright © 2000, Metrowerks Corp. All rights reserved.
Last updated: August 17, 2000