| The Datasheet Archive - 100 Million Datasheets from 7500 Manufacturers. |
RELEASE NOTES COMPILER HC08 RELEASE NOTES CHC08 V5.0.6 List
Top Searches for this datasheetRelease Notes CHC08 RELEASE NOTES COMPILER HC08 RELEASE NOTES CHC08 V5.0.6 List Features List fixed Bugs List known Bugs Limitations Demo Version Limitations RELEASE NOTES CHC08 V5.0.6 beta5 List Features List fixed Bugs List known Bugs RELEASE NOTES CHC08 V5.0.5 List Features List fixed Bugs List known Bugs RELEASE NOTES CHC08 V5.0.3 List Features List fixed Bugs List known Bugs RELEASE NOTES CHC08 V5.0.1 List Features List fixed Bugs List known Bugs page 1/25 Release Notes CHC08 RELEASE NOTES CHC08 V5.0.6 Note: This release contains some information about Compiler. your license configuration does include feature, just ignore topics related C++. NOTE: Recompile your sources List Features compiler optimizes loops into do.while loops code more compact.This results faster code too. error messages written stdout. With WinEdit `Capture Output' feature Project->Configure dialog used error feedback. other applications Microsoft Visual Developer Studio (MSDEV) cmd.exe command shell, necessary launcher application `piper.exe' direct error feedback. compiler Win32 Window application this type application expected have reasonable output. command shell `cmd.exe' MSDEV stdout file. `piper.exe' tool actually Win32 command line application therefore MSDEV `cmd.exe' stdout. first argument `piper.exe' used application called with remaining options. output started application then written standard output. print list option command window (instead tool compiler/linker/. name). piper.exe tool.exe there nameless struct union (e.g. typedef struct _tagStruct };), name written object file better debugging support. Additionally there extended debugging support enumerations, that means following source debug information available enumeration values RED, GREEN, BLUE, WOOD, STONE, IRON MARBLE: enum Color_tag RED, GREEN, BLUE} Colors; enum Color_tag taged_color; typedef enum Material_tag WOOD, STONE, IRON, MARBLE} Materials; enum Material_tag taged_material; Materials material; List fixed Bugs Register trace following pseudo source code example fixed: if(ch val1) ch++; if(ch val2) reloaded conditional change ch++ Accesses indirections volatile memory (e.g. constant pointer deref. like *((volatile char 0x200) were optimized some cases. This fixed cannot happen anymore. page 2/25 Release Notes CHC08 List known Bugs Absolute objects work correctly. compiler adds address twice, accesses absolute object address 0x1000 address 0x2000. absolute objects. Volatile accesses sometimes optimized compiler. compiler cannot handle switch expression over long variables. Workaround: if-else if-else Example: unsigned long unsigned switch(uL) case break; case break; default: break; produces error message, above statement rewritten with if-else if-else: unsigned long unsigned else else messages back error message format (e.g. C1234: ERROR message). options only affect messages message format with proceeding number -OdocF option does care about illegal option combinations (e.g. mixing memory models). careful with aliases: common subexpression elimination (option -Oc) cannot check cases memory location referenced with several pointers, e.g. pointer pointing itself. Incorrect code generated following example: char *p++ workaround: char p++; Preprocessor directive #line implemented, directive ignored. page 3/25 Release Notes CHC08 Limitations Following restrictions applies when using this version HICROSS+ compiler Win32s platforms: Smart sliders used. help file cannot called outside compiler This restrictions unimplemented features Win32s graphical interface. other Win32 platforms (Windows WindowsNT) this features fully supported. Help System Some topics available compiler help file. Requesting Help about such topic opens error window. help topics will extended next release. Error Feedback Error feedback does work properly when starting compiler under Win32s, Windows Windows from WinEdit with modifier specified command line. much more efficient compile file from compiler window then start WinEdit double clicking error message compiler window. Demo Version Limitations have demo version compiler, there following limiations: total code size source file (compilation unit) limited bytes total number functions source file (compilation unit) limited remainder displayed whenever compiler started source file compiled. NOTE: Some features available still documented your information. page 4/25 Release Notes CHC08 RELEASE NOTES CHC08 V5.0.6 beta5 Note: This release contains some information about Compiler. your license configuration does include feature, just ignore topics related C++. NOTE: Recompile your sources List Features option -LicA display license information about every possible feature directory where executable Note: this option requires some time features every file directory take long time only: This version true 32bit version only, cannot under Win32s more. still using Win32s, either upgrade Windows WinNT 4.0. this possible, please contact reasons support Win32s more: Most hardware vendors support their chips with Win32s tools more, thus support such target interfaces, possible tools under Win32s Microsoft does support 16bit applications Win32s Using graphical user interface HI-WAVE), Win32s quite instable, e.g. some dialog boxes behave differently Win32s than true Win32 environment 32bit application needs additional dll's which copied your Windows system directory: mfc42.dll msvcrt.dll This version introduces FLEXlm license managment which allows very flexible licensing only): floating licenses (client-server) node locked licenses (single workstation) dongle optional Running tool without license manager switches tool restricted demo mode (see 'Demo Version Limitations' below). about gives overview with current host status each feature/license. license manager consists following parts: license manager 'lmgr326a.dll': this license normally installed where tools (default c:\hiware\prog\lmgr326a.dll'), also possible place this into Windows system directory wherever your operating system searches dll. license file. name license file either 'hiware.lic' 'license.dat'. This file normal text file normally placed into same directory your tools installed, usually 'c:\hiware\prog'. This license file contains features enabled your site, everything else without license restricted demo mode. have license yet, request sending content about 'register@hiware.com'. option (preprocessor output) accepts optional file specification, e.g. Lp=%n.pre (see manual details) (which also default). TEXTPATH page 5/25 Release Notes CHC08 environment variable used preprocessor output file name does contain path (NOTE: relative path path too!). compiler exists forms with graphical user interface chc08.exe with command line user interface cchc08.exe cchc08.exe Win32 command line application only true Win32 systems Windows Windows higher, Win32s. command line version compiler does project.ini way. Options must given command line (recommended) COMPOPTIONS entry default.env. Filename surrounded double quotes. Then filenames paths also contain spaces. option generates listing file, which then read assembler. This way, information header file gets accessible assembler modules. With option -lasm compiler itself generates listing file. Note current beta version, assembly output module completely finished still subject changes. option -NoBeep disable beep case error. possible redirect message output file tool started using command shell. Example: 'c:\hiware\prog\linker.exe fibo.prm output.txt'. NOTE: tool launched command shell under Win95, have '/wait' start command shell wait until started application terminates, e.g. 'start /wait c:\hiware\prog\linker.exe fibo.prm'. warning message 'C1805: standard conversion used' object pointer (e.g. pointer struct) assigned function pointer. Previously there error message 'C1806: illegal cast operation' this case. possible check source option active. EBNF grammar OptionActive "_OPTION_ACTIVE_" string ")". used preprocessor code too: _OPTION_ACTIVE_("-W2") option #endif void main(void) (_OPTION_ACTIVE_("-or")) i=2; virtual function management: avoid create virtual table pointer when possible (less virtual tables, less code). option -Lic display license information (note: this information also displayed about box) defines _LITTLE_ENDIAN_ _BIG_ENDIAN_ identify data allocation. manual details. option -Ldf write compiler defined defines file (see manual details). page 6/25 Release Notes CHC08 options -WmsgFoi -WmsgFob specify message format batch interactive format. This options using format string flexible message format. compiler tries integral compares instead double compares whenever possible. This reduces usage runtime libraries increases code speed. option -Ont used switch this optimization off. -Ont option does have suboptions disable single optimizations. libraries STL, "complex", "bitset", "strstream" added. Bitfields inside unions legal Example: struct union char legal options -CswMinLF, -CswMaxLF, -CswMinLB configure switch processor behavior (HI-CROSS+ only), manual details. macro _VERSION_ identify compiler version. E.g. compiler V5.0.2 value macro 5002, compiler with version V3.0.17 3017. Functions containing function calls and/or loops inside inlined, Global variable address modifier Global variables specific addresses with global variable address modifier. following syntax: Declaration <TypeSpec><Declarator>[@ <Address>][=<Initializer>]; Example: glob @0xff02; variable "glob" lies 0xff02 option -ObjN specify object file name, default "-ObjN=%n.o". This option allows changing default object file name which normally source file name with extension ".o". E.g. specify extension ".obj" object files generated compiler, option "-ObjN=%n.obj" specified (see manual details). option -Wmsg8x3 only): This option truncates file names message file MS-DOS format (8.3 format). E.g. this option source file named `mysourcefile.c', source file referenced message output `mysource.c'. This default behavior earlier versions, because some editors (e.g. very versions WinEdit) have problems with file names larger than format. default truncate source file name message output. Local static variables qualified, Example: void static number pragmas active same time longer artificially limited. pragma MESSAGE used messages certain kind. E.g. message `Implicit Function Definition' error. page 7/25 Release Notes CHC08 pragma OPTION used enable certain options some functions only. E.g. enable -cni during time critical function. Characters with ACSII code larger than 0x7f were treated from previous compiler versions white space characters (like space). This compiler version emits error. Characters with ACSII code larger than 0x7f were treated from previous compiler versions white space characters (like space). This compiler version emits error. pragma STRING_SEG STRING_SECTION allows allocation following strings into specific segment. Strings into named segment handled linker like constants. string segment pragma must also contain modifiers like "SHORT" other segment pragmas strings allocated default way. Example: strings "Print %s", "Print" "str" allocated segment MY_STRINGS. #pragma STRING_SEG MY_STRINGS void main(void) printf("Print %s", "Print"); char* str="str"; #pragma STRING_SEG DEFAULT HICROSS +compilers also support directory searching feature environment variables. compiler finds include files included with (#include <test.h>) directory c:\hicross\work subdirectory directory c:\hicross\lib with following entry default.env List fixed Bugs correction problem (compiler option -Oc): compiler produced wrong code following complex example: static void test(STRUCT1 *ptr) (Array[ptr->byte1] (structArray[ptr->byte2].byte4 structArray[ptr->byte2].byte3)) Array[ptr->byte1] structArray[ptr->byte2].byte3; else Array[ptr->byte1] manual described option "-prod" expect then filename. implementation expect filename after space. implementation follows manual description page 8/25 Release Notes CHC08 Template class with multiple inheritance having base classes generated same template Constructors calling base class Constructors corrected Example: template <class class public: foo(char template <class class public foo<T>, foo2<int> public hoo(char char dir) foo<int>(1), foo<T>(2) hoo<char> P(1,2); Avoid generate virtual function call where necessary. Inline assembly comments could produce error, illegal numbers were written. they skipped correctly parser. messages generated, empty error/message file generated now. Previously there error file compiler issue message. This caused problems with Codewright editor which expects always message file, even there messages. Referencing array-type member struct constant address generates correct code. Example: struct struct char buf[2]; ar[4]; char void main() ch=(char)(&((struct A*)0x00)->ar[1]); Constructor call "new" operator call with array inherited class assigned pointer base class. Example: class A(); class B(); void f(void) B[5]; generating correct Constructor calls Arrays first defined then declared work correctly. With object file format, compiler internal error elf.c module reported. HICROSS object file format, object only declared, page 9/25 Release Notes CHC08 defined, linker issue error message. Example: char a="Example"; extern char This occur only following cases first definition then declaration (reverse order usual case) only arrays array declared without array size (not form "extern char a8;") Odocf Problem: when starting compiler from command line from maker, -odocf ignored until when double quotes were escaped. E.g. compiler.exe -odocf="-or" never -or. reason that command.com does only forward following compiler: 'compiler.exe odocf=-or' -odocf=-or ignored. this error. Especially makefiles using odocf will work until double quotes were escaped correctly. E.g. compiler.exe -odocf=\"-or\" Indirection address constant variable lvalue Example: const void f(void) *(int *)&i=2; legal Compiler endless loop statement for(;;); fixed. Inconsistency problem interrupt functions (with interrupt keyword) having prototype without interrupt keyword solved (i.e. interrupt function RTI). Parameter passing problem function with more than parameters (one parameter register) solved (stack incorrect) Compiler optimize away inline assembler instruction that made sense. Compiler optimize code compare without branch which incorrect there side effects like assignments function calls. Now, code compares will removed anymore Example: assignment removed char void f(void) if(ch List known Bugs Absolute objects work correctly. compiler adds address twice, accesses absolute object address 0x1000 address 0x2000. absolute objects. page 10/25 Release Notes CHC08 Volatile accesses sometimes optimized compiler. compiler cannot handle switch expression over long variables. Workaround: if-else if-else Example: unsigned long unsigned switch(uL) case break; case break; default: break; produces error message, above statement rewritten with if-else if-else: unsigned long unsigned else else messages back error message format (e.g. C1234: ERROR message). options only affect messages message format with proceeding number -OdocF option does care about illegal option combinations (e.g. mixing memory models). [Note: -OdocF option (OptiHunter(tm)) only available with special license]. careful with aliases: common subexpression elimination (option -Oc) cannot check cases memory location referenced with several pointers, e.g. pointer pointing itself. Incorrect code generated following example: char *p++ workaround: char p++; page 11/25 Release Notes CHC08 RELEASE NOTES CHC08 V5.0.5 Note: This release also contains some information about Compiler. your license configuration does include feature, just ignore topics related C++. List Features option -Wmsg8x3 only): This option truncates file names message file MS-DOS format (8.3 format). E.g. this option source file named `mysourcefile.c', source file referenced message output `mysource.c'. This default behaviour earlier versions, because some editors (e.g. very versions WinEdit) have problems with file names larger than format. default truncate source file name message output. option -ObjN specify object file name, default "-ObjN=%n.o". This option allows changing default object file name which normally source file name with extension ".o". E.g. specify extension ".obj" object files generated compiler, option "-ObjN=%n.obj" specified (see manual details). compiler tries load first variable instead constant byte comparisons. This allows better register usage results denser code. Example: immediate loaded into register variable `ch' loaded option -BfaB (see manual details): Allocation bitfields with size between bits allocate only bytes instead bytes. Example: typedef struct unsigned long b18: sizeof(B) interrupt keyword functional. Example: void interrupt foo(void){} interrupt vector (address 0xFFFE) option specify virtual table delta size (-Tvtd, manual details (option T)). Previously delta value inside virtual tables type 'size_t', possible specify smaller larger) type using option Using virtual member functions, virtual function tables generated. Those tables contain function pointer associated delta value used access base class. Usually those delta values have (signed) 16bit type, allowing class objects with size 32kByte each. save usage such tables, type this delta value changed using -Tvtd option. E.g. class objects smaller equal bytes, then virtual table delta type changed bytes (signed!) type using -Tvtd. there should class object fitting into this type, error message (C1393) will generated. TreeOptimizer (option -Ont switch off) warns about removed labeled statements. Example: switch(i) Label: Labeled statement removed TreeOptimizer (option -Ont switch off) does also optimize modulo operationswith constant unsigned characters. page 12/25 Release Notes CHC08 Example: optimized 'uch 0xF;' environment variable OBJPATH used, compiler able create object file this path (e.g. because already existing object file locked another tool, compiler issues error message instead trying create object file path where source been found. Compiler started with arguments (e.g. using make file), compiler does grab focus also visible task bar. option -Qvtp specify qualifier virtual table pointers (C++ only, Manual details) support Examples: 0x12345678; main:5; support label (BN1967) Example: Label: Label defines size_t ptrdiff_t been moved from stddef.h stdtypes.h, stddef.h includes stdtypes.h defines '_SIZE_T_IS_USHORT_' '_PTRDIFF_T_IS_SHORT_' available. possible empty blocks HLI. This usefull using conditional compilation which result empty blocks. Example: something commented #endif static template member initialization Example: template <int struct static char template <int char S<i>::A; init static member S<3> sets global constant objects have static linkage default Example: const static linkage extern const extern linkage does allow initialization array with long string Example: char str[3]="abc"; error, "abc" length page 13/25 Release Notes CHC08 References qualified Example: void main(void) &far "far" qualifier reference cC++ language configuration options support (also configurable option dialogbox): -C++f: Full support -C++e: Embedded support (EC++) -C++c: Compact support (cC++) options enabling/disabling cC++ features (also configurable option dialogbox): -Cn=Ctr: create compiler defined functions -Cn=Vf: allow virtual functions -Cn=Mih: allow multiple inheritance virtual base classes -Cn=Tpl: allow templates -Cn=Cpr: allow class params class returns -Cn=Ptm: allow pointer member Note: option -C++ does exist anymore options Object File Handling: -Fh: HIWARE Object File Format (Default) -F7: strict HIWARE Object File Format Using strict HIWARE V2.7 Object File Format provides full compatibility with HI-CROSS V2.7 Object File Format. Using option affects object files following points: standard type `short' written `int' into object file Enumerations written symbolically into object file option -Fsi (treat short object file format), this included option tree optimizations (-Ont switch off): Optimization EXOR with constants comparisons with constants !=). Such code sequences common bitfield operations. Example: unsigned char ((uc^3) optimized tree optimizations (-Ont switch off): Optimization operations. Such code sequences common bitfield operations. Example: unsigned char (uc&1)?-1:0; page 14/25 Release Notes CHC08 optimized uc?1:0; loop unrolling option argument specify maximum loop unrolling iteration level. syntax `"-Cu" "=i"<number>]' where number between 1024. Without additional arguments, loop unrolling performed until maximum iterations, e.g. `for(i=0; i<15; i++).'. unroll larger loops, additional argument used, e.g. with `-Cu=i100' loops until interations unrolled. option change enum type signed unsigned type (e.g. -Tue1 enumeration unsigned type), manual details. Note that previous version command line option -Tue1 also accepted, fact same behaviour than -Tuce1. default arguments global operator overloading class operator+(A void i=a+43; conversion operator overloading struct operator int(); void i=a; HIWARE introduces generatation compilers (V5.0.x) generation compilers includes following features: compiler native Win32 application. about times faster than older 2.7.x version Win32 system. compiler runs with Windows Windows 3.x, Windows Windows 3.11 with Win32s (Note that features available under Win32s restrictions Microsoft) Fully windows oriented user interface (menus, tool bars, drag drop) Online help Flexible Type Management Message Management Smart Sliders Rich compiler options both with graphical command line setting page 15/25 Release Notes CHC08 Direct link between compiler output editor: simply double click ompiler message open source with editor your choice Editable command line with history support. option does more temporary files fabs fabsf performed inline (Optimize time) given Tree Optimizer (-Ont switch off): Warning about assignement conditions 'for' condition Example: warning Tests IEEE32 floating values optimized front end: Example: (floatVar optimized sign test (floatVar 0.0F) optimized 32bit compare (floatVar 3.0F) optimized 32bit compare Multiplication with optimized front end: Example: optimized Multiplication with zero optimized front end: Example: optimized Division operations optimized front end: Example: optimized optimized Subtraction with zero optimized front end: Example: (j-j); optimized Addition with same left right expression optimized front end: Example: optimized Binary operations optimized front end: Example: optimized optimized EXOR operations optimized front end: Example: optimized optimized Constant switch expressions optimized: Example: switch(3) case break; case break; optimized page 16/25 Release Notes CHC08 Constant narrowing performed front level: Examples: (uc1 0x111) always false (uc1 0x111) always true defines _PRODUCT_HICROSS_, _PRODUCT_HICROSS_PLUS_ _PRODUCT_SMILE_LINE_ identify product line List fixed Bugs path with slashes used file name truncated error feedback, e.g. './src/foo.c' message line './src.c(3) TreeOptimizer sign extension instead zero extensin following example (workaround specify -Ont compiler option): (i+j)&0xff; improved precision strtod() Correction about undefined enums. Example: enum legal labeled statements with new/delete operator calls: Generated code correct Example: void f(int switch(i) case int; produce wrong code break; declaration friend function with default argument class declaration producing correct code Example: struct friend void f(int i=0); produce wrong code argument function call function call returning inherited class legal Example: struct struct public void F(A); g(void); page 17/25 Release Notes CHC08 void main(void) F(g()); didn't compile previous versions assignement operator overloading should also done initialization assign Example: struct &operator=(int void main(void) call assignment operator initialization open array class objects with Ctor argument struct A(char void main(void) {"Hello"}; order function calls Constructor inherited class class myclass1 private: private_member; public: myclass1( private_member constructor method1( return x+private_member; class myclass2 public myclass1 public: myclass2() myclass1( constructor method1(16) should return instead "uninitialized private_member value" method1(16); {Error;} Enum inside inherited classes Example: class typedef enum {myenum=11}; class public f(void); typedef enum {myenum=22}; second::f() return myenum; returns B::myenum does allow overload member delete operators page 18/25 Release Notes CHC08 Example: class void operator delete(void void operator delete(void unsigned int); error implicit casting base class pointer call operator "new" Example: class class void preprocessor have "defined" keyword only #if, also #define Example: #define #define defined(A) compiled code #endif warning assigning pointer pointer const void. Example: void f(const void const unsigned char cp[3]; void main() f(&cp[0]); Register trace take notice CBEQ <opr>,X+,<label> instructions. Example: Bug: CBEQ 1,X+,L1 ;wrong access local object with frame address Correct code: CBEQ 1,X+,L1 ;correct access local object with frame address interrupt handlers with function calls stack space local variables freed before calling interrupt exit runtime routine (reported bug). control flow character conditions like a,b,c character variables constants, correct (reported bug) branch optimization rewritten assure range (-128 127) short branch displacements (test bug) page 19/25 Release Notes CHC08 Deferenzations constant pointer gave internal error HC08 backend. This been fixed. Example: typedef struct char #define cptr 0x200) void main() char S->ch; Reported assertion concerning initializations pointers with constant addresses 0x00 field offset fixed. Example: typedef union unsigned char unsigned char &(*(A *)(0x00)).b; List known Bugs compiler cannot handle switch expression over long variables. Workaround: if-else if-else Example: unsigned long unsigned switch(uL) case break; case break; default: break; produces error message, above statement rewritten with if-else if-else: unsigned long unsigned else else page 20/25 Release Notes CHC08 messages back error message format (e.g. C1234: ERROR message). options only affect messages message format with preceeding number -OdocF option does care about illegal option combinations (e.g. mixing memory models). [Note: -OdocF option (OptiHunter(tm)) only available with special license]. careful with aliases: common subexpression elimination (option -Oc) cannot check cases memory location referenced with several pointers, e.g. pointer pointing itself. Incorrect code generated following example: char *p++ workaround: char p++; page 21/25 Release Notes CHC08 RELEASE NOTES CHC08 V5.0.3 List Features help file contains context help whole user interface available options. banked memory model added. banked memory model functions using calling convention default. banked memory model it's own, libraries. calling convention added absolute calls Functions using calling convention anywhere address range area controlled page register. page register accessed only with runtime routines farcal08.c, which delivered with this compiler. page address delivered libraries 0x40. your hardware page register different address, adapt file farcal08.c. Then recompile with memory model options using. Then link addition ansi library. linker uses your object file instead library. default Note that calling convention supported function pointers. Therefore banked memory model function pointers only point functions explicitly marked near. E.g. void f_far(void); pragma DATA_SEG NEAR MY_SEG void f_near1(void); pragma DATA_SEG DEFAULT void near f_near2(void); void (*fkt_type) (void); fkt_type f_fail= f_far; ERROR possible call function with pointer fkt_type f_ok1= f_near1; fkt_type f_ok1= f_near2; Note that f_near2 must allocated banked area. Also segment MY_SEG must allocated link parameter file banked area. page 22/25 Release Notes CHC08 List fixed Bugs Sideeffects opassigns left side correctly evaluated only once. Previous compiler versions generate wrong code following code char *p++ List known Bugs interrupt keyword does work correctly this version, compiler cannot handle switch expression over long variables. Workaround: if-else if-else Example: unsigned long unsigned switch(uL) case break; case break; default: break; produces error message, above statement rewritten with if-else if-else: unsigned long unsigned else else help file does contain specific help messages. context help such message called, default entry shown. -OdocF option does care about illegal option combinations (e.g. mixing memory models). [Note: -OdocF option (OptiHunter(tm)) only available with special license]. careful with aliases: common subexpression elimination (option -Oc) cannot check cases memory location referenced with several pointers, e.g. pointer pointing itself. page 23/25 Release Notes CHC08 RELEASE NOTES CHC08 V5.0.1 List Features HIWARE introduces generatation compilers (V5.0.x) generation compilers includes following features: compiler native Win32 application. about times faster than older 2.7.x version Win32 system. compiler runs with Windows Windows 3.x, Windows Windows 3.11 with Win32s (Note that features available under Win32s restrictions Microsoft) Fully windows oriented user interface (menus, tool bars, drag drop) Online help Flexible Type Management Message Management Smart Sliders Rich compiler options both with graphical command line setting Direct link between compiler output editor: simply double click ompiler message open source with editor your choice Editable command line with history List fixed Bugs none List known Bugs interrupt keyword does work correctly this version, this version compiler cannot handle switch expression over long variables. Workaround: if-else if-else Example: unsigned long unsigned switch(uL) case break; case break; default: break; produces error message, above statement rewritten with if-else if-else: unsigned long unsigned page 24/25 Release Notes CHC08 else else messages back error message format (e.g. C1234: ERROR message). options only affect messages message format with preceeding number -OdocF option does care about illegal option combinations (e.g. mixing memory models). [Note: -OdocF option (OptiHunter(tm)) only available with special license]. careful with aliases: common subexpression elimination (option -Oc) cannot check cases memory location referenced with several pointers, e.g. pointer pointing itself. Incorrect code generated following example: char *p++ char p++; workaround: page 25/25 Other recent searchesWS82C55A - WS82C55A WS82C55A Datasheet WM8950 - WM8950 WM8950 Datasheet TMP91CY22IFG - TMP91CY22IFG TMP91CY22IFG Datasheet TLV2217 - TLV2217 TLV2217 Datasheet STE100P - STE100P STE100P Datasheet M24C16 - M24C16 M24C16 Datasheet M24C08 - M24C08 M24C08 Datasheet M24C04 - M24C04 M24C04 Datasheet M24C02 - M24C02 M24C02 Datasheet M24C01 - M24C01 M24C01 Datasheet LM1086 - LM1086 LM1086 Datasheet B1008-BD - B1008-BD B1008-BD Datasheet ADEX-10L+ - ADEX-10L+ ADEX-10L+ Datasheet
Privacy Policy | Disclaimer |