Home
User Guide - v3.6r1 DSP56xxx Toolchain C++ Compiler
Contents
1. Compiler Use Option Description Display an explanation of options at stdout Example cp563 4 17 4 18 Chapter 4 alternative_tokens Option alternative_tokens no_alternative_tokens Default alternative_tokens Description Enable or disable recognition of alternative tokens This controls recognition of the digraph tokens in C and controls recognition of the operator keywords e g not and bitand etc Example To disable operator keywords e g not and and digraphs enter cp563 no_alternative_tokens test cc Compiler Use anachronisms Option anachronisms no anachronisms Default no anachronisms Description Enable or disable anachronisms Example cp563 anachronisms test cc d gt nonconst ref anachronisms cfront_2 1 b cfront_3 0 Section Anachronisms Accepted in chapter Language Implementation 4 19 4 20 Chapter 4 arg_dep_lookup Option arg_dep_lookup no_arg dep lookup Default arg_dep_lookup Description Controls whether argument dependent lookup of unqualified function names is performed Example cp563 no_arg_dep_lookup test cc Compiler Use array_new_and_delete Option array_new_and_delete no_atray_new_and_delete Default array_new_and_delete Description Enable or disable support for array new and delete Example cp563 no_
2. template parameter xxxx may not be used in an elaborated type specifier old_specialization_not_allowed specializing entity kind entity requires template lt gt syntax cl_old_specializations_option_only_in_cplusplus option old specializations can be used only when compiling C nonstd_old_specialization specializing entity kind entity without template lt gt syntax is nonstandard bad linkage for decl this declaration may not have extern C linkage not a_template_name xxxx is not a class or function template name in the current scope nonstd default arg on function template redecl specifying a default argument when redeclaring an unreferenced function template is nonstandard default arg_on function template_not allowed specifying a default argument when redeclaring an already referenced function template is not allowed pm derived class from_virtual base cannot convert pointer to member of base class type to pointer to member of derived class type base class is virtual bad exception specification for specialization exception specification is incompatible with that of entity kind entity declared at line xxxx omitted exception specification_on specialization omission of exception specification is incompatible with entity kind entity declared at line xxxx Error Messages B 59 0807 0808 0809 0810 0811 081
3. cannot open raw listing output file cl invalid xref output file invalid cross reference output file cl cannot open xref output file cannot open cross reference output file cl invalid error output file invalid error output file cl cannot open error output file cannot open error output file cl vtbl option only in cplusplus virtual function tables can only be suppressed when compiling C cl anachronism option only_in_cplusplus anachronism option can be used only when compiling C cl instantiation option only_in_cplusplus instantiation mode option can be used only when compiling C cl auto instantiation option only in cplusplus automatic instantiation mode can be used only when compiling C cl implicit inclusion_option_only_in_cplusplus implicit template inclusion mode can be used only when compiling C cl_exceptions_option_only_in_cplusplus exception handling option can be used only when compiling C cl_strict_ansi_incompatible_with_pcc strict ANSI mode is incompatible with K amp R mode Error Messages B 43 0592 0593 0594 0595 0596 0597 0598 0599 0600 0601 0602 0603 0604 cl strict ansi incompatible_with_cfront strict ANSI mode is incompatible with cfront mode cl missing source file name missing source file name cl output file incompatible_with multiple inputs output files may not be specified
4. entity is reserved for future use as a keyword cl invalid macro definition invalid macro definition cl invalid macro undefinition invalid macro undefinition cl invalid_preprocessor_ output file invalid preprocessor output file Error Messages B 41 0564 0565 0566 0567 0568 0569 0570 0571 0572 0573 0574 0575 0576 0578 cl_cannot_open_preprocessor_output_file cannot open preprocessor output file cl il file must_be_specified IL file name must be specified if input is cl invalid il output file invalid IL output file cl cannot open il output file cannot open IL output file cl invalid C output file invalid C output file cl cannot open C output file cannot open C output file cl error in debug option argument error in debug option argument cl invalid option invalid option cl back end reguires il file back end reguires name of IL file cl could not open il file could not open IL file cl invalid number invalid number cl incorrect host id incorrect host CPU id cl invalid instantiation mode invalid instantiation mode cl invalid error limit invalid error limit B 42 0579 0580 0581 0582 0583 0584 0585 0586 0587 0588 0589 0590 0591 Appendix B cl invalid raw listing output_file invalid raw listing output file cl_cannot_open_raw_listing output file
5. Log in as the operating system administrator usually root Append the following lines to the file etc rc local Replace FLEXLMDIR by the FLEXlm installation directory default usr local flexlm FLEXLMDIR bin lmgrd 2 p c FLEXLMDIR licenses license dat gt gt var tmp license log 2 gt amp l1 amp 1 14 Chapter 1 SunOS5 Solaris 2 1 2 Log in as the operating system administrator usually root In the directory etc init d create a file named rc 1mgrd with the following contents Replace FLEXLMDIR by the FLEXlm installation directory default usr local flexlm bin sh FLEXLMDIR bin lmgrd 2 p c FLEXLMDIR licenses license dat gt gt var tmp license log 2 gt amp l1 amp Make it executable chmod urx rc lmgrd Create an S link in the etc rc3 d directory to this file and create K links in the other etc rc d directories ln etc init d rc lmgrd etc rc3 d Snumrc lmgrd ln etc init d rc lmgrd etc rc d Knumrc lmgrd num must be an approriate seguence number Refer to you operating system documentation for more information 1 4 6 MODIFYING THE LICENSE FILE LOCATION The default location for the license file on Windows is c flexilm license dat On UNIX this is usr local flexlm licenses license dat If you want to use another name or directory for the license file each user must define the environment variable LM LICENSE_FILE Do this in autoexec bat Windows 95 98
6. class type has no constructor no_match_for_type_of_overloaded_function no instance of entity kind entity matches the specified type nonstd_void_param_list declaring a void parameter list with a typedef is nonstandard cfront_name_lookup_bug global entity kind entity used instead of entity kind entity cfront compatibility redeclaration_of_template_param_name template parameter xxxx may not be redeclared in this scope decl_hides_template_parameter declaration of xxxx hides template parameter must_be_prototype_instantiation template argument list must match the parameter list bad extra arg for postfix operator extra parameter of postfix operatorxxxx must be of type int function type reguired an operator name must be declared as a function operator name_not allowed operator name is not allowed bad scope for specialization entity kind entity cannot be specialized in the current scope Error Messages B 37 0504 0505 0506 0507 0508 0510 0511 0512 0513 0514 0515 0516 0517 nonstd_member_function_address nonstandard form for taking the address of a member function too_few_template_params too few template parameters does not match previous declaration too_many_template_params too many template parameters does not match previous declaration template_operator_delete function template for
7. integer to float conversion integral value does not fit in required floating point type float to _ float conversion floating point value does not fit in required floating point type B 18 0222 0223 0224 0225 0226 0227 0228 0229 0230 0231 0232 0233 0234 0235 Appendix B bad float operation result floating point operation result is out of range implicit func decl function declared implicitly too few_printf args the format string reguires additional arguments too many_ printf args the format string ends before this argument bad printf format string invalid format string conversion macro recursion macro recursion nonstd_ extra _comma trailing comma is nonstandard enum bit field too small bit field cannot contain all values of the enumerated type nonstd bit field type nonstandard type for a bit field decl in prototype scope declaration is not visible outside of function decl of void ignored old fashioned typedef of void ignored old_fashioned_field_selection left operand is not a struct or union containing this field old_fashioned_ptr_field_selection pointer does not point to struct or union containing this field var_retained_incomp_type variable xxxx was declared with a never completed type Error Messages B 19 0236 0237 0238 0239 0240 0241 0242 0243 0244 0245 0246 0247 0248 0249 boo
8. pch_verbose Description In automatic PCH mode for each precompiled header file that cannot be used for the current compilation a message is displayed giving the reason that the file cannot be used Example cp563 pch pch_verbose test cc do cm Section Precompiled Headers in chapter Language Implementation 4 86 Chapter 4 pending instantiations Option pending instantiations n Arguments The maximum number of instantiation for a single template Default 64 Description Specifies the maximum number of instantiations of a given template that may be in process of being instantiated at a given time This is used to detect runaway recursive instantiations If 7 is zero there is no limit Example To specify a maximum of 32 pending instantiations enter cp563 pending_instantiations 32 test cc d gt Section Template Instantiation in chapter Language Implementation Compiler Use 4 87 preinclude Option preinclude filename Arguments The name of file to include at the beginning of the compilation Description Include the source code of the indicated file at the beginning of the compilation This can be used to establish standard macro definitions etc The filename is searched for in the directories on the include search list Example cp563 preinclude extra h test cc d gt Section 4 2 Include Files 4 88 Chapter 4 preprocess E Option E
9. 0658 0659 0660 0661 0662 0663 0664 0665 0666 0667 0668 0669 0670 Appendix B template missing closing brace closing brace of template definition not found cl wchar t option only in cplusplus wchar_t keyword option can be used only when compiling C bad_pack_alignment invalid packing alignment value exp_int_constant expected an integer constant call_of_pure_virtual call of pure virtual function bad_ident_string invalid source file identifier string template_friend_definition_not_allowed a class template cannot be defined in a friend declaration asm_not_allowed asm is not allowed bad asm function def asm must be used with a function definition nonstd asm function asm function is nonstandard nonstd ellipsis only_param ellipsis with no explicit parameters is nonstandard nonstd address of ellipsis amp is nonstandard bad address of ellipsis invalid use of amp Error Messages B 49 0672 0673 0674 0675 0676 0677 0678 0679 0680 0681 0682 0688 const volatile ref init anachronism temporary used for initial value of reference to const volatile anachronism bad const volatile ref init a reference of type type cannot be initialized with a value of type rype const volatile ref init from rvalue initial value of reference to const volat
10. 0831 Appendix B ellipsis_not_allowed is not allowed cl_extern_inline_option_only_in_cplusplus option extern_inline can be used only when compiling C extern inline never defined extern inline entity kind entity was referenced but not defined invalid_destructor_name invalid destructor name for type type ambiguous destructor destructor reference is ambiguous both entity kind entity and entity kind entity could be used virtual inline never defined virtual inline entity kind entity was never defined unreferenced_function_param entity kind entity was never referenced union_already_initialized only one member of a union may be specified in a constructor initializer list no array new and delete support support for new and delete is disabled double for long double double used for long double in generated C code no_corresponding delete entity kind entity has no corresponding operator deletexxxx to be called if an exception is thrown during initialization of an allocated object useless_placement delete support for placement delete is disabled Error Messages B 61 0832 0833 0834 0835 0836 0837 0838 0840 0841 0842 0843 0844 no appropriate delete no appropriate operator delete is visible ptr_or ref to incomplete type pointer or reference to incomplete type is
11. EATUR E s and F EATUR ES ET s encryption code Flexible License Manager FLEXIm A 11 3 2 LMDIAG Windows only Name Imdiag diagnose license checkout problems Synopsis Imdiag c cense file n feature Description Imdiag Windows only allows you to diagnose problems when you cannot check out a license If no feature is specified lmdiag will operate on all features in the license file s in your path lmdiag will first print information about the license then attempt to check out each license If the checkout succeeds Imdiag will indicate this If the checkout fails lmdiag will give you the reason for the failure If the checkout fails because Imdiag cannot connect to the license server then you have the option of running extended connection diagnostics These extended diagnostics attempt to connect to each port on the license server node and can detect if the port number in the license file is incorrect lmdiag will indicate each port number that is listening and if it is an Imgrd process Imdiag will indicate this as well If lmdiag finds the vendor daemon for the feature being tested then it will indicate the correct port number for the license file to correct the problem Parameters fealure Diagnose this feature only Options c license_file Diagnose the specified icense_file If no c option is specified lmdiag looks for the environment variable
12. Suppress warnings on local automatic variables that are used before their values are set Suppress all warning messages Old style for scoping rules Put out line control information in the form nnn instead of line nnn Enable or disable old style template specialization Forces pcc style preprocessing Create separate instantiation files Specify name of preprocess or intermediate output file Automatically use and or create a precompiled header file Specify directory dirin which to search for and or create a precompiled header file Enable or disable the display of a message indicating that a precompiled header file was created or used in the current compilation Generate a message when a precompiled header file cannot be used Maximum number of instantiations for a single template default 64 Compiler Use Option Description preinclude file preprocess E remarks r remove_unneeded entities no_ remove unneeded entities rtti no tti signed_chars S special_subscript_cost no_special_subscript_cost strict A strict_warnings a suppress_typeinfo_vars suppress vibl sys_include dir timing trace_includes H Include file at the beginning of the compilation Preprocess only Keep line control information and remove comments Issue remarks Enable or disable the removal of unneeded entities from th
13. can be used only when compiling C explicit_not_allowed explicit is not allowed conflicts_with_predeclared_type_info declaration conflicts with xxxx reserved class name array_ member initialization only is allowed as initializer for array entity kind entity virtual function template virtual is not allowed in a function template declaration anon union class member template invalid anonymous union class member template is not allowed template_depth mismatch template nesting depth does not match the previous declaration of entity kind entity multiple_template_decls_not_allowed this declaration cannot have multiple template lt gt clauses cl old for init option only_in cplusplus option to control the for init scope can be used only when compiling C redeclaration of for init decl name xxxx declared in for loop initialization may not be redeclared in this scope hidden by_old for init reference is to entity kind entity declared at line xxxx under old for init scoping rules it would have been entity kind entity declared at line xxxx cl for init diff warning option only in cplusplus option to control warnings on for init differences can be used only when compiling C Error Messages B 57 0782 0783 0784 0785 0786 0787 0788 0789 0790 0791 0792 0793 unnamed class_virtual
14. diag_suppress 4 33 diag warning 4 33 display_error_number 4 34 distinct_template_signatures 4 35 dollar 4 36 early_tiebreaker 4 37 embedded 4 38 embedded_c 4 39 enum_overloading 4 40 error_limit 4 41 error_output 4 42 exceptions 4 43 explicit 4 44 extended _variadic macros 4 45 extern_inline 4 46 for_init_diff_ warning 4 47 force_vtbl 4 48 friend_injection 4 49 gen_c file name 4 50 guiding_decls 4 51 implicit_extern_c_type_conversion 4 52 implicil_ include 4 53 implicit_typename 4 54 incl_suffixes 4 55 include_directory 4 56 inlining 4 57 instantiate 4 58 instantiation_dir 4 60 late_tiebreaker 4 37 list 4 61 long_lifetime_temps 4 03 Index Index 7 long_preserving_ rules 4 04 no_remove_unneeded_entities namespaces 4 07 4 90 new_for_init 4 68 no_riti 4 91 no_alternative_tokens 4 18 no_special_subscript_cost 4 93 no_anachronisms 4 19 no_tsw_diagnostics 4 100 no_arg dep lookup 4 20 no_typename 4 101 no_array_new_and_delete 4 21 no_use_before_set_warnings 4 75 no_auto_instantiation 4 22 no_using std 4 106 no_base_assign_op_is default no_variadic_macros 4 107 4 23 no_warnings 4 76 no_bool 4 24 no_wchar t keyword 4 109 no_brief_diagnostics 4 25 no_wrap_diagnostics 4 110 no_class_nam
15. s Option s signed_chars Description Treat character type variables as signed character variables When plain char is signed the macro ___SIGNED_CHARS___ is defined Example cp563 s test cc d gt unsigned chars u Compiler Use 4 93 special_subscript_cost Option special_subscript_cost no_special_subscript_cost Default no_special_subscript_cost Description Enable or disable a special nonstandard weighting of the conversion to the integral operand of the operator in overload resolution This is a compatibility feature that may be useful with some existing code The special cost is enabled by default in cfront 3 0 mode With this feature enabled the following code compiles without error struct A A operator int int operator unsigned void main A a a 0 Ambiguous but allowed with this option operator is chosen Example cp563 special_subscript_ cost test cc 4 94 Chapter 4 strict A Strict_warnings a Option A strict a strict_warnings Description Enable strict ANSI mode which provides diagnostic messages when non ANSI features are used and disables features that conflict with ANSI C or C ANSI violations can be issued as either warnings or errors depending on which command line option is used The strict options issue errors and the strict_warnings options issue warni
16. struct_too_large struct or union is too large bad_bit_field_size invalid size for bit field bad bit field type invalid type for a bit field zero length bit field must_be unnamed zero length bit field must be unnamed signed one bit field signed bit field of length 1 expr not ptr to function expression must have pointer to function type exp definition of tag expected either a definition or a tag name code _is unreachable statement is unreachable exp_ while expected while never defined entity kind entity was referenced but not defined continue_must_be_in loop a continue statement may only be used within a loop break_must_be_in_loop_or_switch a break statement may only be used within a loop or switch no_value returned in non void function non void entity kind entity declared at line xxxx should return a value B 12 0118 0119 0120 0121 0122 0123 0124 0125 0126 0127 0128 0129 0130 0131 Appendix B value returned in void function a void function may not return a value cast_to_bad type cast to type type is not allowed bad return value type return value type does not match the function type case label must be in switch a case label may only be used within a switch default label must be in switch a default label may only be used within a switch case label appears more than onc
17. 3 4 NAMESPACE SUPPORT Namespaces are enabled by default except in the cfront modes You can use the command line options namespaces and no_namespaces to enable or disable the features Name lookup during template instantiations now does something that approximates the two phase lookup rule of the standard When a name is looked up as part of a template instantiation but is not found in the local context of the instantiation it is looked up in a synthesized instantiation context The C compiler follows the new instantiation lookup rules for namespaces as closely as possible in the absence of a complete implementation of the new template name binding rules Here is an example namespace N int g int int x 0 template lt class T gt struct A T f T t return g t T return x y namespace M int x 99 double g double N A lt int gt ai int i ai f 0 N A lt int gt f int calls N g int N 0 int 12 ai f N A lt int gt f returns N x N A lt double gt ad double d ad f 0 N A lt double gt f double calls M g double double d2 ad f N A lt double gt f also returns 0 N x The lookup of names in template instantiations does not conform to the rules in the standard in the following respects e Although only names from the template definition context are considered for names that are not functions the lookup is no
18. MA039 012 00 00 Doc ver 1 71 DSP56xxx v3 6 C COMPILER USER S GUIDE all TASKING _ A publication of Altium BV Documentation Department Copyright 2008 Altium BV All rights reserved Reproduction in whole or part is prohibited without the written consent of the copyright owner TASKING is a brand name of Altium Limited The following trademarks are acknowledged FLEXlm is a registered trademark of Globetrotter Software Inc Intel is a trademark of Intel Corporation Motorola is a registered trademark of Motorola Inc MS DOS and Windows are registered trademarks of Microsoft Corporation SUN is a trademark of Sun Microsystems Inc UNIX is a registered trademark of X Open Company Ltd All other trademarks are property of their respective owners Data subject to alteration without notice http www tasking com http www altium com The information in this document has been carefully reviewed and is believed to be accurate and reliable However Altium assumes no liabilities for inaccuracies in this document Furthermore the delivery of this information does not convey to the recipient any license to use or copy the software or documentation except as provided in an executed license agreement covering the software and documentation Altium reserves the right to change specifications embodied in this document without prior notice TABLE OF CONTENTS all TASKING M SLNALN
19. a 33 2 New Language Features Not Accepted 3 8 3 3 3 Anachronisms Accepted 1 0 0 0 000 cece eee ne 3 8 2 3 4 Extensions Accepted in Normal C Mode 3 10 3 3 5 Extensions Accepted in Cfront 2 1 Compatibility Mode 3 12 VI Table of Contents 3 3 6 Extensions Accepted in Cfront 2 1 and 3 0 Compatibility M d a GYR naa eG ee es 3 16 3 4 Namespace Support Y eee 3 22 3 5 Template Instantiation Y FF FAU 3 24 3 5 1 Automatic Instantiation 6 eee 3 25 3 5 2 Instantiation Modes VY FF FR FE AD 3 29 3 5 3 Instantiation pragma Directives 3 30 2 5 4 Implicit Inclusion Y FF EE FE FFR AU 3 33 3 6 Predefined Macross ien ib xian a ncaa ene Ba 3 34 3 7 Precompiled Headers ie a Wd CWR yw gens 3 36 fed Automatic Precompiled Header Processing 3 36 3 7 2 Manual Precompiled Header Processing 3 40 3 7 3 Other Ways to Control Precompiled Headers 3 41 3 7 4 Performance Issues 9 Y FF FF FY RA 3 42 COMPILER USE 4 1 4 1 InVGCAatiON ited y bie Dy o sie ope Oa we FD Fy N 4 3 4 1 1 Detailed Description of the Compiler Options 4 16 4 2 Include Biles Y a Y GAEO A Y toe ee Bae 4 112 4 3 PLASMAS nery riari GC RA RR Y de EAR gd MR 4 115 4 4 Compiler Limits ss css Aie ydwy ale Weasel oie eae 4 117 COMPILER DIAGNOSTICS 5 1 5 1 Diagnostic Messages os nei secre ya RR Y enue 5 3 5 2 Termination Messages iy is
20. applied to an array has no effect mod by_zero right operand of 96 is zero old_style_incompatible_param argument is incompatible with formal parameter printf arg mismatch argument is incompatible with corresponding format string conversion empty include search path could not open source file xxxx no directories in search list cast_not integral type of cast must be integral cast_not scalar type of cast must be arithmetic or pointer initialization not reachable dynamic initialization in unreachable code Error Messages B 17 0186 0187 0188 0189 0190 0191 0192 0193 0194 0195 0196 0219 0220 0221 unsigned_compare_with_zero pointless comparison of unsigned integer with zero assign_where_compare_meant use of where may have been intended mixed_enum_type enumerated type mixed with another type file_write_error error while writing xxxx file bad il file invalid intermediate language file cast_to gualified type type gualifier is meaningless on cast type unrecognized char escape unrecognized character escape seguence undefined preproc id zero used for undefined preprocessing identifier exp asm string expected an asm string asm func must _be_prototyped an asm function must be prototyped bad asm func ellipsis an asm function may not have an ellipsis file delete_error error while deleting file xxxx
21. e 509 characters in a character string literal or wide string literal after concatenation 1500 4 118 Chapter 4 e 8 nesting levels for included files 50 e 257 case labels for a switch statement excluding those for any nested switch statements D e 127 members in a single structure or union D e 127 enumeration constants in a single enumeration D e 15 levels of nested structure or union definitions in a single struct declaration list D COMPILER DIAGNOSTICS all TASKING M daldVHyD Compiler Diagnostics 5 3 5 1 DIAGNOSTIC MESSAGES Diagnostic messages have an associated severity as follows e Catastrophic errors also called fatal errors indicate problems of such severity that the compilation cannot continue For example command line errors internal errors and missing include files If multiple source files are being compiled any source files after the current one will not be compiled e Errors indicate violations of the syntax or semantic rules of the C language Compilation continues but object code is not generated e Warnings indicate something valid but questionable Compilation continues and object code is generated if no errors are detected e Remarks indicate something that is valid and probably intended but which a careful programmer may want to check These diagnostics are not issued by default Compilation continues and object code is generated if no erro
22. from the Control Panel gt System Environment Windows NT or in a UNIX login script If you have more than one product using the FLEXIm license manager you can specify multiple license files to the LM LICENSE_FILE environment variable by separating each pathname path with a on UNIX also Example Windows set LM_LICENSE_FILE c flexlm license dat c license txt Software Installation 1 15 Example UNIX setenv LM LICENSE FILE usr local flexlm licenses license dat myprod license txt If the license file is not available on these hosts you must set LM_LICENSE_FILE to port host where host is the host name of the system which runs the FLEXIm license manager and port is the TCP IP port number on which the license manager listens To obtain the port number look in the license file at Posr for a line starting with SERVER The fourth field on this line specifies the TCP IP port number on which the license server listens For example setenv LM LICENSE FILE 7594 elliot d gt See Appendix A Flexible License Manager FLEXlm for detailed information 1 4 7 HOW TO DETERMINE THE HOSTID The hostid depends on the platform of the machine Please use one of the methods listed below to determine the hostid Platform Tool to retrieve hostid Example hostid SunOS Solaris hostid 170a3472 Windows tkhostid 0800200055327 or use Imhostid Table 1 1 Determine the hostid
23. none 3 29 used 3 29 instantiation pragmas 3 30 internal error 5 3 introduction 2 3 invocation 4 3 K keyword bool 4 24 typename 4 101 wchar t 4 109 L language extensions 4 94 language implementation 3 1 license floating 1 8 node locked 1 8 obtaining 1 8 license file default location A 6 location 1 14 licensing 1 8 lifetime 4 63 limits compiler 4 117 list file 4 61 LM LICENSE FILE 1 14 A 6 Imcksum A 10 Imdiag A 11 Imdown A 12 Imgrd A 13 Imhostid A 15 Imremove A 16 Imreread A 17 Index 6 Imstat A 18 Imswitchr A 20 Imver A 21 long arithmetic conversion rules 4 64 lookup of unqualified function names 4 20 macros predefined 3 34 variable argument list 4 45 4 107 messages diagnostic 5 3 termination 5 5 muncher 2 7 C 5 namespace 3 22 4 67 std 4 106 no_pch 3 41 4 115 node locked license 1 8 o once 4 115 operator keywords 4 18 options 4 17 4 98 4 36 alternative_tokens 4 18 anacbronisms 4 19 arg_dep lookup 4 20 array_new_and_delete 4 21 auto_instantiation 4 22 base_assign_op_is default 4 23 bool 4 24 Index brief_diagnostics 4 25 cfront_2 1 4 26 cfront_3 0 4 26 class_name_injection 4 27 comments 4 28 const_string literals 4 29 create_pch 4 30 define_macro 4 31 dependencies 4 32 diag error 4 33 diag_remark 4 33
24. preprocess Description Do preprocessing only Write preprocessed text to the preprocessing output file with comments removed and with line control information When you use the E option use the o option to separate the output from the header produced by the compiler Example cp563 E o preout test cc d gt comments C dependencies M no_line_ commands P Compiler Use 4 89 remarks r Option r remarks Description Issue remarks which are diagnostic messages even milder than warnings Example To enable the display of remarks enter cp563 r test cc 4 90 Chapter 4 remove_unneeded entities Option remove_unneeded_ entities no_remove_unneeded entities Default remove_unneeded entities Description Enable or disable an optimization to remove unneeded entities from the generated intermediate C file Something may be referenced but unneeded if it is referenced only by something that is itself unneeded certain entities such as global variables and routines defined in the translation unit are always considered to be needed Example cp563 no_remove_unneeded_entities test cc Compiler Use 4 91 rtti Option rtti no_rtti Default no_rtti Description Enable or disable support for RTTI run time type information features dynamic_ cast typeid Example cp563 rtti test cc 4 92 Chapter 4 signed_chars
25. 0451 0452 0456 0457 missing template arg list argument list for entity kind entity is missing too few_template args too few arguments for entity kind entity too_many_template args too many arguments for entity kind entity not used in template function_params entity kind entity is not used in declaring the parameter types of entity kind entity cfront_multiple_nested_types two nested types have the same name entity and entity declared at line xxxx cfront compatibility cfront global defined after nested type global entity was declared after nested entity declared at line xxxx cfront compatibility ambiguous_ ptr to overloaded function more than one instance of entity kind entity matches the required type nonstd long long the type long long is nonstandard nonstd friend decl omission of xxxx is nonstandard return_type_on_conversion_function return type may not be specified on a conversion function runaway_recursive_instantiation excessive recursion at instantiation of entity kind entity bad_template_declaration xxxx is not a function or static data member B 34 0458 0459 0460 0461 0463 0464 0466 0467 0468 0469 0470 0471 0472 Appendix B bad_nontype_template_arg argument of type type is incompatible with template parameter of type type init needing
26. Chapter 4 Override normal error severity Display error number in diagnostic messages Specify maximum number of errors Issue remarks Suppress all warning messages Suppress warnings on local automatic variables that are used before their values are set Enable or disable a shorter form of diagnostic output Enable or disable TASKING style diagnostic messages Enable or disable wrapping of diagnostic messages Enable or disable warning when old style or scoping is used 4 1 1 Description Option Generate raw list file file list file L file Generate cross reference file xfile xref xfile X xfile diag_suppress taog tag diag_remark fag tag diag_warning fag tag diag_error fao tag display_error_number error_limit number enumber remarks r no_warnings W no_use_before_set_warnings brief _diagnostics no_brief_diagnostics tsw_diagnostics no_tsw_diagnostics wrap diagnostics no_wrap diagnostics for_init_diff_warning no_for_init_diff_warning Table 4 2 Compiler options functional DETAILED DESCRIPTION OF THE COMPILER OPTIONS Option letters are listed below If the same option is used more than once the first most left occurrence is used The placement of command line options is of no importance except for the I option Some options also have a no_ form These options are described together
27. E or C an indication of a diagnostic R for remark W for warning E for error and C for catastrophic error The line has the form S file name line number column number message text where S is R W E or C as explained above Errors at the end of file indicate the last line of the primary source file and a column number of zero Command line errors are catastrophes with an empty file name and a line and column number of zero Internal errors are catastrophes with position information as usual and message text beginning with internal error When a diagnostic displays a list e g all the contending routines when there is ambiguity on an overloaded call the initial diagnostic line is followed by one or more lines with the same overall format code letter file name line number column number and message text but in which the code letter is the lower case version of the code letter in the initial line The source position in such lines is the same as that in the corresponding initial line Example To write raw listing information to the file test 1st enter cp563 L test lst test cc Compiler Use 4 63 long_lifetime_temps short_lifetime_temps Option long_lifetime_temps short_lifetime_temps Default long_lifetime_temps cfront short_lifetime_temps standard C Description Select the lifetime for temporaries short means to end of full expression long means to the earliest o
28. Illegal server connection request A connection request came in from another server without a DAEMON name KILL of child failed errno nnn A daemon could not kill its child A 32 Appendix A No internet port number specified A vendor daemon was started without an internet port Not enough descriptors to re create pipes The top level daemon detected one of its sub daemon s death In trying to restart the chain of sub daemons it was unable to get the file descriptors to set up the pipes to communicate This is a fatal error and the daemons must be re started read error mes sage An error in a read system call was detected recycle_control BUT WE DIDN T HAVE CONTROL The hierarchy of vendor daemons has become confused over who holds the control token This is an internal error return_reserved can t find feature listhead When a daemon is returning a reservation to the free reservation list it could not find the 1isthead of features select message An error in a select system call was detected Server exiting The server is exiting This is normally due to an error SHELLO for wrong DAEMON This vendor daemon was sent a server hello message that was destined for a different DAEMON Unsolicited msg from parent Normally the top level vendor daemon sends no unsolicited messages If one arrives this message is logged This is a bug WARNING CORRUPTED options list o gt next
29. LM_LICENSE_FILE in order to find the license file to use If that environment variable is not set lmdiag looks for the file c flexlm license dat Windows or usr local flexlm licenses license dat UNIX n Run in non interactive mode lmdiag will not prompt for any input in this mode In this mode extended connection diagnostics are not available A 12 Appendix A 3 3 LMDOWN Name Imdown graceful shutdown of all license daemons Synopsis Imdown c icense_file q Description The Imdown utility allows for the graceful shutdown of all license daemons both Imgrd and all vendor daemons such as Tasking on all nodes You may want to protect the execution of Imdown since shutting down the servers causes users to lose their licenses See the p option in Section 3 4 lmgrd Imdown sends a message to every license daemon asking it to shut down The license daemons write out their last messages to the log file close the file and exit All licenses which have been given out by those daemons will be revoked so that the next time a client program goes to verify his license it will not be valid Options c license_file Use the specified icense_file If no c option is specified Imdown looks for the environment variable LM_LICENSE_FILE in order to find the license file to use If that environment variable is not set lmdown looks for the file c flexlm license dat Windows or usr local
30. class A int al void fl friend void f int il al cfront uses global al f1 cfront uses global fl F3 Only the innermost class scope is incorrectly skipped by cfront as illustrated in the following example int al int bl struct A static int al class B static int bl friend void f int il al cfront uses A al int jl bl cfront uses global bl y y e operator may be declared as a nonmember function This is flagged as an anachronism by cfront 2 1 e A type qualifier is allowed but ignored on the declaration of a constructor or destructor For example class A A const No error in cfront 2 1 mode 3 16 3 3 6 Chapter 3 EXTENSIONS ACCEPTED IN CFRONT 2 1 AND 3 0 COMPATIBILITY MODE The following extensions are accepted in both cfront 2 1 and cfront 3 0 compatibility mode i e these are features or problems that exist in both cfront 2 1 and 3 0 Type gualifiers on the this parameter may to be dropped in contexts such as this example struct A void f const void A fp amp A f This is actually a safe operation A pointer to a const function may be put into a pointer to non const because a call using the pointer is permitted to modify the object and the function pointed to will actually not modify the object The opposite assignment would not be safe Conversion operators specifying conversion to void are allowed A
31. class object is copied into a temporary the address of the temporary is passed as the argument and the destructor is called on the temporary after the call returns Note that because the argument is passed differently by value instead of by address code like this compiled in cfront mode is not calling sequence compatible with the same code compiled in normal mode In practice this is not much of a problem since classes that allow bitwise copying usually do not have destructors A union member may be declared to have the type of a class for which you have defined an assignment operator as long as the class has no constructor or destructor A warning is issued When an unnamed class appears in a typedef declaration the typedef name may appear as the class name in an elaborated type specifier typedef struct int i j S struct S x No error in cfront mode Two member functions may be declared with the same parameter types when one is static and the other is non static with a function qualifier class A void f int const static void f int No error in cfront mode The scope of a variable declared in the for init statement is the scope to which the for statement belongs int f int i for int j 0 3 lt a rj ssa return j No error in cfront mode Function types differing only in that one is declared extern cC and the other extern C can be treated as identical Languag
32. file The options file specified in the license file could not be opened Couldn t find a master The daemons could not agree on a master license daemon lost all connections This message is logged when all the connections to a server are lost which often indicates a network problem lost lock exiting Error closing lock file Unable to re open lock file The vendor daemon has a problem with its lock file usually because of an attempt to run more than one copy of the daemon on a single node Locate the other daemon that is running via a ps command and kill it with kill 9 NO DAEMON line for daemon The license file does not contain a DAEMON line for daemon No license service found The TCP license service did not exist in etc services No license data for feat feature unsupported There is no feature line for feat in the license file A 30 Appendix A No features to serve A vendor daemon found no features to serve This could be caused by bad data in the license file UNSUPPORTED FEATURE request feature by user The user has requested a feature that this vendor daemon does not support This can happen for a number of reasons the license file is bad the feature has expired or the daemon is accessing the wrong license file Unknown host hostname The hostname specified on a SERVER line in the license file does not exist in the network database probably etc hosts lm_s
33. mode In C mode the value may be redefined Not defined when embedded C is used current source filename current source line number int type hh mm ss Mmm dd yyyy identifies for which memory model the module is compiled identifies the default data memory identifies the data memory used for the stack this is either default data memory or L memory Defined in C mode Defined in default C mode but not in strict mode _ STDC VERSION __ Defined in ANSI C mode with the value 199409L The name of this macro and its value are specified in Normative Addendum 1 of the ISO C Standard _ SIGNED CHARS _ _WCHAR T _BOOL Defined when plain char is signed This is used in the lt limits h gt header file to get the proper definitions of CHAR_MAX and CHAR_MIN Defined in C mode when wchar_t is a keyword Defined in C mode when bool is a keyword Language Implementation 3 35 __ARRAY_OPERATORS Defined in C mode when array new and delete are enabled __EXCEPTIONS Defined in C mode when exception handling is enabled _ RTTI Defined in C mode when RTTI is enabled _ PLACEMENT_ DELETE Defined in C mode when placement delete is enabled __NAMESPACES Defined in C mode when namespaces are supported namespaces _ TSW_RUNTIME USES NAMESPACES Defined in C mode when the configuration flag RUNTIME USES NAMESPACES is TRUE The name of this predefined macro is specified by a
34. munch56 option file DSP5600x munch563 option file DSP563xx DSP566xx where the file is an output file generated by the prelinker and the options are Display an explanation of options at stdout V Display version information at stderr cC Use c as symbol prefix character instead of the default underscore in Skip first 72 lines of input o file Write output to file u Specify that external names do not have an added leading underscore By default external names get a leading underscore With this option you specify that the leading underscore belongs to external name g UTILITIES Appendix C INDEX all TASKING M XAQANI Index Index 3 Symbols define 4 31 include 4 56 4 112 system include directory 4 97 pragma 4 115 undef 4 102 _ ARRAY OPERATORS 3 35 4 102 __ cplusplus 3 34 4 102 _ DATE _ 3 34 4 102 __ EXCEPTIONS 3 35 FILE__ 3 34 4 102 LINE 3 34 4 102 __NAMESPACES 3 35 PLACEMENT DELETE 3 35 __RTTI 3 35 SIGNED CHARS_ 3 34 4 92 4 102 _ STDC__ 3 34 4 102 _ STDC VERSION _ 3 34 _ TIME_ 3 34 4 102 __TSW_IMPLICIT USING STD 3 35 _ TSW_RUNTIME USES NAMESPACES 3 35 _BOOL 3 34 4 102 _DEFMEM 3 34 _ MODEL 3 34 _ STKMEM 3 34 _ WCHAR T 3 34 4 102 A alternative tokens 4 18 anachronism 3 8 anachronisms 4 19 4 26 4 71 ansi standard 4 102 array new and delete 4 21 automatic instantiation 2 5 automati
35. so that everything to be saved in the precompiled header file is assigned to preallocated memory MS Windows two additional restrictions apply e The total memory needed at the header stop point cannot exceed the size of the block of preallocated memory e No single program entity saved can exceed 16384 the preallocation unit When a precompiled header file is produced it contains in addition to the snapshot of the compiler state some information that can be checked to determine under what circumstances it can be reused This includes e The compiler version including the date and time the compiler was built e The current directory i e the directory in which the compilation is occurring e The command line options e The initial sequence of preprocessing directives from the primary source file including include directives e The date and time of the header files specified in include directives Language Implementation 3 39 This information comprises the PCH prefix The prefix information of a given source file can be compared to the prefix information of a PCH file to determine whether the latter is applicable to the current compilation As an illustration consider two source files a cc include xxx h a Start of code b cc finclude xxx h Start of code When a cc is compiled with pch a precompiled header file named a pch is created Then when b cc is compiled or
36. this process is stopped after a certain number of iterations Override the number of reserved instantiation information file lines to be used Specifies whether the prelinker should check for entities that are referenced as both explicit specializations and generated instantiations If number is zero the check is disabled otherwise the check is enabled Suppress instantiation flags in the object files This causes the prelinker to recompile all of the local object files with the suppress_instantiation_flags option Set the target CPU type Specify that external names do not have an added leading underscore By default external names get a leading underscore With this option you specify that the leading underscore belongs to external name Verbose mode Utility Programs C 5 3 MUNCHER The muncher implements a lowest common denominator method for getting global initialization and termination code executed on systems that have no special support for that The muncher accepts the output of the prelinker as its input file and generates a C program that defines a data structure containing a list of pointers to the initialization and termination routines This generated program is then compiled and linked in with the executable The data structure is consulted at run time by startup code invoked from _main and the routines on the list are invoked at the appropriate times The invocation syntax of the C muncher is
37. 0 Options list TERMINATED at bad entry An internal inconsistency was detected in the daemon s option list Flexible License Manager FLEXIm A 33 5 FLEXLM LICENSE ERRORS FLEXI license error encryption code in license file is inconsistent Check the contents of the license file using the license data sheet for the product Correct the license file and run the Imreread command However do not change the last fourth field of a SERVER line in the license file This cannot have any effect on the error message but changing it will cause other problems license file does not support this version If this is a first time install then follow the procedure for the error message FLEXlm license error encryption code in license file is inconsistent because there may be a typo in the fourth field of a FEATURE line of your license file In all other cases you need a new license because the current license is for an older version of the product Replace the FEATURE line for the old version of the product with a FEATURE line for the new version it can be found on the new license data sheet Run the Imreread command afterwards You can have only one version of a feature previous versions of the product will continue to work FLEXlIm license error cannot find license file Make sure the license file exists If the pathname printed on the line after the error message is incorrect correct this by setting the LM_LICENSE_FILE env
38. 1000 1001 1002 1003 1004 1005 bad compound literal type a compound literal of type type is not allowed friend template in local class a template friend declaration cannot be declared in a local class ambiguous_ guestion operator ambiguous operation second operand of type type can be converted to third operand type type and vice versa bad call of class object call of an object of a class type without appropriate operator or conversion functions to pointer to function type surrogate func add on surrogate function from conversion name ambiguous_ class call there is more than one way an object of type type can be called for the argument list expected asm before _endasm pragma expected a pragma asm before pragma endasm end of source reached before pragma endasm end of source reached while searching for pragma endasm similar_typedef typedef name has already been declared with similar type no internal linkage for new_or delete operator new and operator delete cannot be given internal linkage no mutable allowed _on_ anonymous union storage class mutable is not allowed for anonymous unions bad_pch_file invalid precompiled header file abstract_class_catch_type abstract class type type is not allowed as catch type B 74 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 Appendix
39. 2 8 Chapter 2 7 2 3 ENVIRONMENT VARIABLES This section contains an overview of the environment variables used by the DSP56xxx toolchain Environment Variable Description AS56INC Specifies an alternative path for include files for the assembler as56 AS563INC Specifies an alternative path for include files for the assembler as563 C56INC Specifies an alternative path for include files for the C compiler c56 C563INC Specifies an alternative path for include files for the C compiler c563 C56LIB Specifies a path to search for library files used by the linker Ik56 C563LIB Specifies a path to search for library files used by the linker Ik563 CC56BIN When this variable is set the control program cc56 prepends the directory specified by this variable to the names of the tools invoked CC563BIN When this variable is set the control program cc563 prepends the directory specified by this variable to the names of the tools invoked CC560PT Specifies extra options and or arguments to each invocation of cc56 The control program processes the arguments from this variable before the command line arguments CC5630PT Specifies extra options and or arguments to each invocation of cc563 The control program processes the arguments from this variable before the command line arguments CP56INC Specifies an alternative path for include files for the C compiler cp56 CP563INC
40. C language itself is not described in this document 4 Compiler Use Deals with invocation command line options and pragmas 5 Compiler Diagnostics Describes the exit status and error warning messages of the C compiler APPENDICES A Flexible License Manager FLEXlm Contains a description of the Flexible License Manager x Manual Purpose and Structure B Error Messages Contains an overview of the error messages C Utitily Programs Contains a description of the prelinker and the muncher which are delivered with the C compiler package INDEX Manual Purpose and Structure XI RELATED PUBLICATIONS The C Programming Language second edition by Bjarne Straustrup 1991 Addison Wesley ISO IEC 14882 1998 C standard ANSI More information on the standards can be found at http www ansi org The Annotated C Reference Manual by Margaret A Ellis and Bjarne Straustrup 1990 Addison Wesley The C Programming Language second edition by B Kernighan and D Ritchie 1988 Prentice Hall ANSI X3 159 1989 standard ANSI DSP56xxx C Cross Compiler User s Guide TASKING MA039 002 00 00 DSP56xxx Cross Assembler Linker Locator Utilities User s Guide TASKING MA039 000 00 00 DSP56xxx CrossView Pro Debugger User s Guide TASKING MA039 049 00 00 DSP56000 Digital Signal Processor Family Manual Motorola Inc DSP56002 Digital Signal Processor User s Manual Motorola Inc D
41. Controls License Manager Service Name FLEXIm License Manager for TASKING Start Starts Up the License Server Status Stop Stops the License Server License Manager Status Cancel From the Control tab you can start stop and check the status of your license server Select the Setup tab to enter information about your license server FLEXIm License Manager x Control Licenses Diagnostics About r Setup of License Manager Service Name FLEXIm License Manager for TASKING x Imard exe BW e flexlm bin Imard exe License File He Je Mlexim icense dat Debug Log Je Mexim icense log File Browse IV Start Server at Power Up IV Use NT Services Remove Cancel A 24 Appendix A Select the Control tab and click the Start button to start your license server lmgrd exe will be launched as a background application with the license file and debug log file locations passed as parameters If you want Imgrd exe to start automatically on NT select the Use NT Services check box and Imgrd exe will be installed as an NT service Next select the Start Server at Power UP check box The Licenses tab provides information about the license file and the Advanced tab allows you to perform diagnostics and check versions Flexible License Manager FLEXIm A 25 4 THE DAEMON LOG FILE The FLEXlm daemons all generate log files containing messages in the fol
42. Enable or disable recognition of guiding declarations of template functions no_implicit_extern_c_type_conversion implicit_include no implicit include B implicit_typename no_implicit_typename incl_suffixes suffixes include_directory dir ldir Enable or disable implicit type conversion between external C and C function pointers Enable or disable implicit inclusion of source files as a method of finding definitions of template entities to be instantiated Enable or disable implicit determination from context whether a template parameter dependent name is a type or nontype Set the valid suffixes for include files Look in directory dir for include files Compiler Use Option Description inlining no inlining Enable or disable minimal inlining of instantiate mode t mode instantiation_dir dir late_tiebreaker list file L file long_lifetime_temps short_lifetime_temps long_preserving rules no_long_preserving_ rules M m s r xly l p L M 24 1624 16 6 n x y l p L namespaces no namespaces new for init no_code gen n no_line_commands P nonconst_ ref anachronism no_nonconst_ref_anachronism function calls Control instantiation of external template entities Write instantiation files to dir Late handling of tie breakers in overload resolution Generate raw list file file
43. Pine wena E wie 5 5 5 3 Response to Signals 0 eee 5 6 5 4 Return VAIMES ax ene Baye had any haste edn eg arose 5 6 FLEXIBLE LICENSE MANAGER FLEXIm A 1 1 IntrOductiON RR Peers eee es tok hous A 3 2 License Administration YF kiia A 3 2 1 COVEEVIEW ais tira ioga RG aaia SAF aiena aden te dia wae A 3 2 2 Providing For Uninterrupted FLEXlm Operation A 5 Table of Contents 2 3 Daemon Options File sj costae cede arene es gad A 7 3 License Administration Tools VYF Yg A 8 3 1 ImEkSUM soei iia e rE a E EA E A r A A 10 3 2 Imdiag Windows only IF A A 11 33 IMGOWN Y RYN bean adedda weak Wide ao A 12 3 4 SED ET HR H eh ee eee i E A 13 35 NAO STIG six tacts AF NAWN DDTF A 15 3 6 lmremove a yu es eridi arai aeai Ready oly Seay sean Dy sg A 16 Buf lmnreread y a tya a N ta AGY OUR YO GGH ES A 17 3 8 WPS CAs eas dad egal ah aces do GW R eae Bla WG Ny SN Rte a A 18 3 9 Imswitchr Windows only VF Y eee A 20 3 10 MA VEE eiie a RNA Secon tog we oats A 21 SA License Administration Tools for Windows A 22 SALA LMTOOLS for Windows 00 00 00 eee ee A 22 3 11 2 FLEXlm License Manager for Windows A 23 4 The Daemon Log File 6 00 cee A 25 4 1 Informational Messages 0 000 00 Y ee A 26 4 2 Configuration Problem Messages 00005 A 29 4 3 Daemon Software Error Messages s A 31 5 FLEXIm License Errors 2 0 00
44. SETTING THE ENVIRONMENT After you have installed the software you can set some environment variables to make invocation of the tools easier A list of all environment variables used by the toolchain is present in the section Environment Variables in the chapter Overview Make sure that your path is set to include all of the executables you have just installed The environment variable TMPDIR can be used to specify a directory where programs can place temporary files 1 8 t Chapter 1 1 4 LICENSING TASKING PRODUCTS TASKING products are protected with license management software FLEXIm To use a TASKING product you must install the licensing information provided by TASKING for the type of license purchased You can run TASKING products with a node locked license or with a floating license When you order a TASKING product determine which type of license you need UNIX products only have a floating license Node locked license PC only This license type locks the software to one specific PC so you can use the product on that particular PC only Floating license This license type manages the use of TASKING product licenses among users at one site This license type does not lock the software to one specific PC or workstation but it requires a network The software can then be used on any computer in the network The license specifies the number of users who can use the software simultaneously A system allocating f
45. a UNIX group called Imadmin then use is restricted to only members of that group If root is not a member of this group then root does not have permission to use any of the above utilities Specifies the timeout interval in seconds during which the license daemon must complete its connection to other daemons if operating in multi server mode The default value is 10 seconds A larger value may be desirable if the daemons are being run on busy systems or a very heavily loaded network A 14 Appendix A s interval Specifies the log file timestamp interval in minutes The default is 360 minutes This means that every six hours lmgrd logs the time in the log file d gt Imdown lmstat Flexible License Manager FLEXIm A 15 3 5 LMHOSTID Name Imhostid report the hostid of a system Synopsis Imhostid Description Imhostid calls the FLEXlm version of gethostid and displays the results The output of Imhostid looks like this lmhostid Copyright C 1989 1999 Globetrotter Software Inc The FLEXlm host ID of this machine is 1200abcd Options Imhostid has no command line options A 16 Appendix A 3 6 LMREMOVE Name Imremove remove specific licenses and return them to license pool Synopsis Imremove c icense_ file feature user host display Description The Imremove utility allows the system administrator to remove a single user s license for a specified feature Thi
46. a very heavily loaded network d gt Imgrd A 20 Appendix A 3 9 LMSWITCHR Windows only Name Imswitchr switch the report log file Synopsis lmswitchr c cense_file feature new file or lmswitchr c cense_file vendor new file Description Imswitchr Windows only switches the report writer REPORTLOG log file It will also start a new REPORTLOG file if one does not already exist Parameters feature Any feature this daemon supports vendor The name of the vendor daemon such as Tasking new file New file path Options c license_file Use the specified icense_file If no c option is specified Imswitchr looks for the environment variable LM_LICENSE_FILE in order to find the license file to use If that environment variable is not set lmswitchr looks for the file c flexlm license dat Windows or usr local flexlm licenses license dat UNIX Flexible License Manager FLEXIm A 21 3 10 LMVER Name Imver report the FLEXIm version of a library or binary file Synopsis Imver filename Description The lmver utility reports the FLEXIm version of a library or binary file Alternatively on UNIX systems you can use the following commands to get the FLEXIm version of a binary strings file grep Copy Parameters filename Name of the executable of the product A 22 Appendix A 3 11 LICENSE ADMINISTRATION TOOLS FOR WINDOWS 3 11 1 LMTOOLS FOR WIND
47. amp This is a note It gives you extra information A This is a warning Read the information carefully Manual Purpose and Structure XIII Q This illustration indicates actions you can perform with the mouse EE This illustration indicates keyboard input d gt This illustration can be read as See also It contains a reference to another command option or section XIV MANUAL STRUCTURE Manual Purpose and Structure SOFTWARE INSTALLATION all TASKING M daldVHyD Software Installation 1 3 1 1 INTRODUCTION This chapter describes how you can install the TASKING C Compiler for the DSP5600x and or DSP563xx DSP566xx Family on Windows 95 98 NT 2000 and several UNIX hosts 1 2 INSTALLATION FOR WINDOWS 1 2 Start Windows 95 98 NT 2000 if you have not already done so Insert the CD ROM into the CD ROM drive If the TASKING Showroom dialog box appears proceed with Step 5 Click the Start button and select Run In the dialog box type d setup substitute the correct drive letter for your CD ROM drive and click on the OK button The TASKING Showroom dialog box appears Select a product and click on the Install button Follow the instructions that appear on your screen You can find your serial number on the Start up kit envelope delivered with the product License the software product as explained in section 1 4 Licensing TASKING Products 1 2
48. any compatibility differences In particular some elements of FLEXIm didn t require certain patches so a 2 4 Imgrd will work successfully with a 2 4b vendor daemon I ve received a new copy of a product from a vendor and it uses a new version of FLEXIm Is my old license file still valid Yes Older FLEXlm license files are always valid with newer versions of FLEXlm 6 3 WINDOWS GUESTIONS What Windows Host Platforms can be used as a server for Floating Licenses The system being used as the server where the FLEXIm License Manager is running for Floating licenses must be Windows NT The FLEXlm License Manager does not run properly with Windows 95 98 Why do I need to include NWlink IPX SPX on NT This is necessary for either obtaining the Ethernet card address or to provide connectivity with a Netware License server Flexible License Manager FLEXIm A 39 6 4 TASKING QUESTIONS How will the TASKING licensing pricing model change with License Management FLEXlm TASKING will now offer the following types of licenses so you can purchase licenses based upon usage License Description Pricing Node Locked This license can only be used ona_ The pricing for this specific system It cannot be license will be the moved to another system current product pricing Floating This license requires a network The pricing for this license server and a TCP IP or license will be 50 IPX SPX connection between
49. bad scope for explicit instantiation entity kind entity cannot be explicitly instantiated in the current scope multiple explicit instantiations entity kind entity explicitly instantiated more than once typename not in template typename may only be used within a template cl special subscript_cost_option_ only in cplusplus special subscript_cost option can be used only when compiling C cl_typename_option_only_in_cplusplus typename option can be used only when compiling C cl_implicit_typename_option_only_in_cplusplus implicit typename option can be used only when compiling C nonstd_character_at_start_of_macro_def nonstandard character at start of object like macro definition exception _spec_override incompat exception specification for virtual entity kind entity is incompatible with that of overridden entity kind entity pointer conversion loses_ bits conversion from pointer to smaller integer generated exception spec_override incompat exception specification for implicitly declared virtual entity kind entity is incompatible with that of overridden entity kind entity implicit call of ambiguous_name entity implicitly called from entity kind entity is ambiguous B 56 0770 0771 0772 0773 0774 0775 0776 0777 0778 0779 0780 0781 Appendix B cl_explicit_option_only_in_cplusplus option explicit
50. configuration flag _ EDG_RUNTIME USES NAMESPACES is the default __ TSW_IMPLICIT USING _STD Defined in C mode when the configuration flag RUNTIME USES NAMESPACES is TRUE and when the standard header files should implicitly do a using directive on the std namespace using std _ TSW_CPP _ Always defined _ TSW_CPP VERSION _ Defined to an integral value that represents the version number of the C front end For example version 2 37 is represented as 237 __embedded cplusplus Defined as 1 in Embedded C mode 3 36 Chapter 3 3 7 PRECOMPILED HEADERS It is often desirable to avoid recompiling a set of header files especially when they introduce many lines of code and the primary source files that include them are relatively small The C compiler provides a mechanism for in effect taking a snapshot of the state of the compilation at a particular point and writing it to a disk file before completing the compilation then when recompiling the same source file or compiling another file with the same set of header files it can recognize the snapshot point verify that the corresponding precompiled header PCH file is reusable and read it back in Under the right circumstances this can produce a dramatic improvement in compilation time the trade off is that PCH files can take a lot of disk space 3 7 1 AUTOMATIC PRECOMPILED HEADER PROCESSING When pch appears on the command line automatic pr
51. daemons dies RESERVE feature for HOST name RESERVE feature for USER name A license of feature is reserved for either user name or host name REStarted xxx internet port nnn Vendor daemon xxx was restarted at internet port 717111 Retrying socket bind address in use The license servers try to bind their sockets for approximately 6 minutes if they detect address in use errors A 28 Appendix A Selected EXISTING master node This license daemon has selected an existing master node as the master SERVER shutdown requested A daemon was requested to shut down via a user generated kill command NEW Server started for feature list A possibly new server was started for the features listed Sbutting down xxx The license daemon is shutting down the vendor daemon xxx SIGCHLD received Killing child servers A vendor daemon logs this message when a shutdown was requested by the license daemon Started name The license daemon logs this message whenever it starts a new vendor daemon Trying connection to node The daemon is attempting a connection to node Flexible License Manager FLEXIm A 29 4 2 CONFIGURATION PROBLEM MESSAGES hostname Not a valid server host exiting This daemon was run on an invalid hostname hostname Wrong hostid exiting The hostid is wrong for hostname BAD CODE for feature name The specified feature name has a bad encryption code CANNOT OPEN options file
52. defined when array new and delete are enabled These symbols can be turned off with the U option Compiler Use 4 103 Example cp563 Uc_plusplus test cc d gt D define macro 4 104 unsigned_chars u Option u unsigned_chars Description Treat character type variables as unsigned character variables Example cp563 u test cc d gt signed_chars s Chapter 4 Compiler Use 4 105 use_pch Option use_pch filename Arguments The filename to use as a precompiled header file Description Use a precompiled header file of the specified name as part of the current compilation If pch automatic PCH mode or create_pch appears on the command line following this option its effect is erased Example To use the precompiled header file with the name test pch enter cp563 use_pch test pch test cc d gt pch create_pch Section Precompiled Headers in chapter Language Implementation 4 106 Chapter 4 using _std Option using std no_using std Default using_ std Description Enable or disable implicit use of the std namespace when standard header files are included Example cp563 using_std test cc d gt namespaces Section Namespace Support in chapter Language Implementation Compiler Use variadic macros Option variadic macros no_variadic macros Default no_variadic macros De
53. expr not bool expression must have bool type or be convertible to bool cl array new and delete option only in cplusplus array new and delete option can be used only when compiling C based reguires_variable_namc entity kind entity is not a variable name based_not_allowed_here __ based modifier is not allowed here based_not_followed_by_star __ based does not precede a pointer operator __ based ignored B 52 0716 0717 0718 0719 0720 0721 0722 0723 0724 0725 0726 0727 0728 Appendix B based_var_must_be_ptr variable in __ based modifier must have pointer type bad_const_cast_type the type in a const_cast must be a pointer reference or pointer to member to an object type bad_const_cast a const_cast can only adjust type qualifiers it cannot change the underlying type mutable_not_allowed mutable is not allowed cannot change access redeclaration of entity kind entity is not allowed to alter its access nonstd printf format string nonstandard format string conversion probable inadvertent lbracket digraph use of alternative token lt appears to be unintended probable inadvertent sharp digraph use of alternative token 96 appears to be unintended namespace def not allowed namespace definition is not allowed missing namespace name name must be a namespace name namespace alias def not allowed namespace alia
54. feature has passed its expiration date IN feature by user N licenses used d hh mm ss mm dd yy bb mm user has checked back in N licenses of feature at mm dd yy bb mm IN server died feature by user number licenses used d bb mm ss mm dd yy bb mm user has checked in N licenses by virtue of the fact that his server died License Manager server started The license daemon was started Flexible License Manager FLEXIm A 27 Lost connection to bost A daemon can no longer communicate with its peer on node host which can cause the clients to have to reconnect or cause the number of daemons to go below the minimum number in which case clients may start exiting If the license daemons lose the connection to the master they will kill all the vendor daemons vendor daemons will shut themselves down Lost guorum The daemon lost guorum so will process only connection reguests from other daemons MASTER SERVER died due to signal nnn The license daemon received fatal signal nnn MULTIPLE xxx servers running Please kill and restart license daemon The license daemon has detected that multiple copies of vendor daemon xxx are running The user should kill all xxx daemon processes and re start the license daemon OUT feature by user N licenses mm dd yy bb mm user has checked out N licenses of feature at mm dd yy hh mm Removing clients of children The top level daemon logs this message when one of the child
55. file ff e This information is likely to be used to generate a formatted listing The raw listing file contains raw source lines information on transitions into and out of include files and diagnostics generated by the C compiler Each line of the listing file begins with a key character that identifies the type of line as follows N a normal line of source the rest of the line is the text of the line X the expanded form of a normal line of source the rest of the line is the text of the line This line appears following the N line and only if the line contains non trivial modifications comments are considered trivial modifications macro expansions line splices and trigraphs are considered non trivial modifications S a line of source skipped by an if or the like the rest of the line is text Note that the else elif or endif that ends a skip is marked with an N L an indication of a change in source position The line has a format similar to the line identifying directive output by cpp that is to say L line number file name key where key is 1 for entry into an include file 2 for exit from an include file and omitted otherwise 4 62 Chapter 4 The first line in the raw listing file is always an L line identifying the primary input file L lines are also output for line directives Rey is omitted L lines indicate the source position of the following source line in the raw listing file R W
56. flexlm licenses license dat UNIX q Quiet mode If this switch is not specified lmdown asks for confirmation before asking the license daemons to shut down If this switch is specified Ilmdown will not ask for confirmation d gt Imgrd lmstat lmreread Flexible License Manager FLEXIm A 13 3 4 LMGRD Name Imgrd flexible license manager daemon Synopsis lmgrd c license_file 1 logfile 2 p t timeout s interval Description Imegrd is the main daemon program for the FLEXIm distributed license management system When invoked it looks for a license file containing all required information about vendors and features On UNIX systems it is strongly recommended that lmgrd be run as a non privileged user not root Options c license_file 1 logfile 2 p t timeout Use the specified icense_file If no c option is specified lmgrd looks for the environment variable LM_LICENSE_FILE in order to find the license file to use If that environment variable is not set lmgrd looks for the file c flexlm license dat Windows or usr local flexlm licenses license dat UNIX Specifies the output log file to use Instead of using the 1 option you can use output redirection gt or gt gt to specify the name of the output log file Restricts usage of Imdown lmreread and Imremove to a FLEXIm administrator who is by default root If there is
57. function entity has C linkage ambiguous_default_constructor class type has more than one default constructor temp_used_for_ref_init value copied to temporary reference to temporary used nonmember_operator_not_allowed operatorxxxx must be a member function static_member_operator_not_allowed operator may not be a static member function too many args for conversion no arguments allowed on user defined conversion too many args for operator too many parameters for this operator function too_few_args_for_operator too few parameters for this operator function no params with class type nonmember operator reguires a parameter with class type default arg expr not allowed default argument is not allowed ambiguous user defined conversion more than one user defined conversion from type to type applies no matching operator function no operator xxxx matches these operands ambiguous operator function more than one operator xxxx matches these operands Error Messages B 27 0351 0352 0353 0354 0356 0357 0358 0359 0360 0361 0362 0363 0364 bad arg type for operator new first parameter of allocation function must be of type size_t bad return type for op new allocation function requires void return type bad return type for op delete deallocation function requires void re
58. function def missing definition of virtual entity kind entity is required here svr4_token pasting comment empty comment interpreted as token pasting operator 4 storage class in friend decl a storage class is not allowed in a friend declaration templ param list_not allowed template parameter list for entity is not allowed in this declaration bad member _template_ sym entily kind entity is not a valid member class or function template bad member _ template decl not a valid member class or function template declaration specialization follows_param list a template declaration containing a template parameter list may not be followed by an explicit specialization declaration specialization_of referenced template explicit specialization of entity kind entity must precede the first use of entity kind entity explicit_specialization_not_in_namespace_scope explicit specialization is not allowed in the current scope partial_specialization_not_allowed partial specialization of entity kind entity is not allowed entity_cannot_be_specialized entity kind entity is not an entity that can be explicitly specialized specialization_of_referenced_entity explicit specialization of entity kind entity must precede its first use B 58 0794 0795 0798 0799 0800 0801 0802 0803 0804 0805 0806 Appendix B template_param_in_elab_type
59. function designator expression must be an lvalue or a function designator decl incompatible_with_ previous use declaration is incompatible with previous entity declared at line XXXX external name clash name conflicts with previously used external name xxxx unrecognized pragma unrecognized pragma cannot_open_temp file could not open temporary file xxxx temp_file_dir_name_too_long name of directory for temporary files is too long xxxx too_few_arguments too few arguments in function call bad_float_constant invalid floating constant incompatible_param argument of type type is incompatible with parameter of type rype function _type_not allowed a function type is not allowed here exp_ declaration expected a declaration pointer outside _base_object pointer points outside of underlying object bad cast invalid type conversion B 16 0172 0173 0174 0175 0177 0178 0179 0180 0181 0182 0183 0184 0185 Appendix B linkage_conflict external internal linkage conflict with previous declaration float_to_integer_conversion floating point value does not fit in required integral type expr_has_ no effect expression has no effect subscript_out of range subscript out of range declared but not referenced entity kind entity was declared but never referenced pcc address of array amp
60. generating a constructor destructor or assignment operator function For example Compiler Diagnostics 5 5 db test cc line 7 error A A is inaccessible B x detected during implicit generation of B B at line 7 Without the context information it is very hard to figure out what the error refers to For a list of error messages and error numbers see Appendix Frror Messages 5 2 TERMINATION MESSAGES cp563 writes sign off messages to stderr if errors are detected For example one of the following forms of message n errors detected in the compilation of ifile 1 catastrophic error detected in the compilation of ifile n errors and 1 catastrophic error detected in the compilation of ifile is written to indicate the detection of errors in the compilation No message is written if no errors were detected The following message Error limit reached is written when the count of errors reaches the error limit see the e option compilation is then terminated The message Compilation terminated is written at the end of a compilation that was prematurely terminated because of a catastrophic error The message Compilation aborted is written at the end of a compilation that was prematurely terminated because of an internal error Such an error indicates an internal problem in the compiler If such an internal error appears please report the occurrence to TASKING u
61. higher than the node clients and server and can be used locked license on any host system using the same operating system in the network How does FLEXIm affect future product ordering For all licenses node locked or floating you must provide information that is used to create a license key For node locked licenses we must have the HOST ID Floating licenses require the HOST ID and HOST NAME The HOST ID is a unique identification of the machine which is based upon different hardware depending upon host platform The HOST NAME is the network name of the machine amp TASKING Logistics CANNOT ship ANY orders that do not include the HOST ID and or HOST NAME information What if I do not know the information needed for the license key We have a software utility tkhostid exe which will obtain and display the HOST ID so a customer can easily obtain this information This utility is available from our web site placed on all product CDs which support FLEXlm and from technical support If you have already installed FLEXlm you can also use lmhostid e In the case of a Node locked license it is important that the customer runs this utility on the exact machine he intends to run the TASKING tools on A 40 Appendix A e In the case of a Floating License the tkhostid exe or Imhostid utility should be run on the machine on which the FLEXIm license manager will be installed e g the server The HOST NAME
62. information can be obtained from within the Windows Control Panel Select Network click on Identification look for Computer name How will the locking mechanism work e For node locked licenses FLEXIm will first search for an ethernet card If one exists it will lock onto the number of the ethernet card If an ethernet card does not exist FLEXlm will lock onto the hard disk serial number e For floating licenses the ethernet card number will be used What happens if I try to move my node locked license to another system The software will not run What does linger time for floating licenses mean When the TASKING product starts to run it will try to obtain a license from the license server The license server keeps track of the number of licenses already issued and grants or denies the request When the software has finished running the license is kept by the license server for a period of time known as the linger time If the same user requests the TASKING product again within the linger time he is granted the license again If another user requests a license during the linger time his request is denied until the linger time has finished What is the length of the linger time for floating licenses The length of the linger time for both the PC and UNIX floating licenses is 5 minutes Can the linger time be changed Yes A customer can change the linger time to be larger but not shorter th
63. linkage of their class Example cp563 no_extern_inline test cc Compiler Use 4 47 for_init_diff_warning Option for_init_diff_warning no_for_init_diff_warning Default for_init_diff_warning Description Enable or disable a warning that is issued when programs compiled under the new for init scoping rules would have had different behavior under the old rules The diagnostic is only put out when the new rules are used Example cp563 no_for_init_diff_warning test cc d gt new for init old for init 4 48 Chapter 4 force_vtbl Option force_vtbl Description Force definition of virtual function tables in cases where the heuristic used by the C compiler to decide on definition of virtual function tables provides no guidance See suppress_vtbl Example cp563 force_vtbl test cc d gt suppress_vtbl Compiler Use 4 49 friend_injection Option friend_injection no_friend_injection Default no_friend_injection Description Controls whether the name of a class or function that is declared only in friend declarations is visible when using the normal lookup mechanisms When friend names are injected they are visible to such lookups When fr iend names are not injected as required by the standard function names are visible only when using argument dependent lookup and class names are never visible Example cp563 friend i
64. name With this feature enabled a template argument for the template parameter T can be deduced in contexts like A lt T gt B or T B The standard deduction mechanism treats these as nondeduced contexts that use the values of template parameters that were either explicitly specified or deduced elsewhere Example cp563 nonstd gualifier deduction test cc Compiler Use nonstd_using_decl Option nonstd_ using decl no_nonstd using decl Default no_nonstd using decl Description Controls whether a non member using declaration that specifies an ungualified name is allowed Example cp563 nonstd using decl test cc 4 73 4 74 Chapter 4 no_preproc only Option no_proproc_ only Description May be used in conjunction with the options that normally cause the C compiler to do preprocessing only e g preprocess etc to specify that a full compilation should be done not just preprocessing When used with the implicit inclusion option this makes it possible to generate a preprocessed output file that includes any implicitly included files Examples cp563 E B no_preproc_only test cc d gt preprocess E implicit include B no_line_commands P Compiler Use 4 75 no_use_before_set_warnings j Option j no_use_ before _set_ warnings Description Suppress warnings on local automatic variables that are used before their values are set Examp
65. name cfront anachronism const_function anachronism non const function called for const object anachronism dependent_stmt_is_declaration a dependent statement may not be a declaration void_param_not_allowed a parameter may not have void type bad templ arg expr operator this operator is not allowed in a template argument expression missing handler try block reguires at least one handler missing exception declaration handler reguires an exception declaration masked_by_default_handler handler is masked by default handler Error Messages B 39 0533 0534 0535 0536 0540 0541 0542 0543 0544 0545 0546 0548 0549 masked_by_handler handler is potentially masked by previous handler for type type local type used in exception use of a local type to specify an exception redundant exception specification type redundant type in exception specification incompatible exception specification exception specification is incompatible with that of previous entity kind entity declared at line xxxx no exception support support for exception handling is disabled omitted exception specification omission of exception specification is incompatible with previous entity kind entity declared at line xxxx cannot create instantiation request file could not create instantiation request file xxxx non arith operation in templ arg non arithm
66. nonstandard friend declaration may introduce a new type A friend declaration that omits the elaborated type specifier is allowed in default mode but in cfront mode the declaration is also allowed to introduce a new type name struct A friend B b The third operand of the operator is a conditional expression instead of an assignment expression as it is in the modern language A reference to a pointer type may be initialized from a pointer value without use of a temporary even when the reference pointer type has additional type qualifiers above those present in the pointer value For example int p const int amp r p No temporary used A reference may be initialized with a null Because cfront does not check the accessibility of types access errors for types are issued as warnings instead of errors Language Implementation 3 17 e When matching arguments of an overloaded function a const variable with value zero is not considered to be a null pointer constant In general in overload resolution a null pointer constant must be spelled 0 to be considered a null pointer constant e g NO is not considered a null pointer constant e Inside the definition of a class type the qualifier in the declarator for a member declaration is dropped if that gualifier names the class being defined struct S void SIEC e An alternate form of declaring pointer to member function variables is supported for exampl
67. not allowed bad partial specialization invalid partial specialization entity kind entity is already fully specialized incompatible _exception_specs incompatible exception specifications returning ref to local variable returning reference to local variable nonstd implicit int omission of explicit type is nonstandard int assumed ambiguous_ partial spec more than one partial specialization matches the template argument list of entity kind entity partial spec is primary_template a template argument list is not allowed in a declaration of a primary template default_not allowed on partial spec partial specializations may not have default template arguments not used in partial spec arg list entity kind entity is not used in template argument list of entity kind entity partial_spec_param_depends_on_templ_param the type of partial specialization template parameter entity kind entity depends on another template parameter partial spec arg depends _on_templ_param the template argument list of the partial specialization includes a nontype argument whose type depends on a template parameter B 62 0845 0846 0847 0848 0849 0850 0851 0852 0853 0854 0855 0856 Appendix B partial_spec_after_instantiation this partial specialization would have been used to instantiate entity kind entity partial_spec_after_instantiation_ambiguous this
68. once in a declaration tsw_at_atbit_conflict _at and _atbitQ cannot be used in the same declaration _long fast_interrupt conflict _long interrupt and _ fast interrupt cannot be used in the same declaration _long interrupt already_used _long interrupt can only be used once in a declaration _ fast interrupt_already_used _ fast interrupt can only be used once in a declaration tsw_expr_ not integral or fractional expression must have integral or fractional type Error Messages B 69 0942 0943 0944 0945 0946 0947 0948 0949 0950 0951 0952 0953 0954 tsw_expr not integral or enum or fractional expression must have integral enum or fractional type cl options after input file not allowed options are not allowed after the input file name bad va start incorrect use of va_start bad va arg incorrect use of va_arg bad va end incorrect use of va_end cl pending instantiations option only in cplusplus pending instantiations option can be used only when compiling C cl_invalid_import_directory invalid directory for import files cl import_only_in microsoft an import directory can be specified only in Microsoft mode ref not allowed in union a member with reference type is not allowed in a union typedef_ not allowed typedef may not be specified here redecl_changes_access redeclaration of entity kind enti
69. operator delete void is not allowed class_template_same_name_as_templ_param class template and template parameter may not have the same name unnamed_type_in_template_arg a template argument may not reference an unnamed type enum_type_not_allowed enumerated type is not allowed qualified_reference_type type qualifier on a reference type is not allowed incompatible_assignment_operands a value of type type cannot be assigned to an entity of type type unsigned_compare_with_negative pointless comparison of unsigned integer with a negative constant converting to_incomplete_class cannot convert to incomplete class type missing initializer_on_unnamed_const const object requires an initializer unnamed object_with uninitialized field object has an uninitialized const or reference member B 38 0518 0519 0520 0521 0522 0524 0525 0526 0529 0530 0531 0532 Appendix B nonstd_pp directive nonstandard preprocessing directive unexpected template arg list entity kind entity may not have a template argument list missing initializer list initialization with expected for aggregate object incompatible_ptr_to_member_selection_operands pointer to member selection class types are incompatible type and type self friendship pointless friend declaration period used as gualifier 709 used in place of to form a qualified
70. optionally its definition Description Define macro to the preprocessor as in define If def is not given is absent 1 is assumed Function style macros can be defined by appending a macro parameter list to name Any number of symbols can be defined The definition can be tested by the preprocessor with if ifdef and ifndef for conditional compilations Example cp563 DNORAM DPI 3 1416 test cc d gt undefine macro U 4 32 Chapter 4 dependencies M Option M dependencies Description Do preprocessing only Instead of the normal preprocessing output generate on the preprocessing output file a list of dependency lines suitable for input to a make utility When implicit inclusion of templates is enabled the output may indicate false but safe dependencies unless no_proproc_only is also used When you use the control program you have to use the Em option instead to obtain the same result Examples cp563 M test cc test ic test cc d gt preprocess E no_line_ commands P Compiler Use 4 33 diag_option Option diag_suppress ag ag diag_remark ag iag diag_warning ag ag diag error ag lag Arguments A mnemonic error tag or an error number Description Override the normal error severity of the specified diagnostic messages The message s may be specified using a mnemonic error tag or using an error number The e
71. or reference member var_with_uninitialized_field entity kind entity has an uninitialized const field missing const_assignment_operator class type has no assignment operator to copy a const object no_suitable_assignment_operator class type has no suitable assignment operator ambiguous_assignment_operator ambiguous assignment operator for class type missing typedef name declaration reguires a typedef name virtual not allowed virtual is not allowed static not allowed static is not allowed bound function cast anachronism cast of bound function to normal function pointer anachronism Error Messages B 29 0380 0381 0382 0384 0386 0387 0388 0389 0390 0391 0392 0393 0394 expr_not_ptr_to_member expression must have pointer to member type extra semicolon 499 extra ignored nonstd_const member nonstandard member constant declaration standard form is a static const integral member no matching new_ function no instance of overloaded entity matches the argument list no match for addr of overloaded function no instance of entity kind entity matches the required type delete_count anachronism delete array size expression used anachronism bad return type for op arrow operator for class type returns invalid type type cast_to abstract class a cast to abstract cl
72. other domains assuming everything is configured correctly since the network will resolve speedy corp com automatically 3 Finally there must be an alias for speedy so it s also Known locally as speedy corp com This alias is added to the etc hosts file or if NIS Yellow Pages are being used then it will have to be added to the NIS database This requirement goes away in version 3 0 of FLEXlm If all components application lmgrd and vendor daemon are v6 0 or higher no aliases are required the only requirement is that the fully gualified domain name or IP address is used as a hostname on the SERVER or as a hostname in LM LICENSE FILE port host or host A 44 Appendix A Does FLEXlm work witb NIS and DNS Yes However some sites have broken NIS or DNS which will cause FLEXIm to fail In v5 of FLEXIm NIS and DNS can be avoided to solve this problem In particular sometimes DNS is configured for a server that s not current available e g a dial up connection from a PC Again if DNS is configured but the server is not available FLEXIm will fail In addition some systems particularly Sun SGI HP require that applications be linked dynamically to support NIS or DNS If a vendor links statically this can cause the application to fail at a site that uses NIS or DNS In these situations the vendor will have to relink or recompile with v5 FLEXlm Vendors are strongly encouraged to use dynamic libraries for libc
73. processing tie breakers are ignored during the initial comparison and considered only if two functions are otherwise equally good on all arguments the tie breakers can then be used to choose one function over another Example cp563 late_tiebreaker test cc 4 38 Chapter 4 embedded Option embedded no_embedded Default embedded Description Enable or disable support for embedded C language extension keywords Example To disable embedded C language extension keywords enter cp563 no_embedded test cc Compiler Use 4 39 embedded_ c Option embedded_c Description Enable the diagnostics of noncompliance with the Embedded C subset from which templates exceptions namespaces new style casts RTTI multiple inheritance virtual base classes and mutable are excluded Example To enable the diagnostics of noncompliance with the Embedded C subset enter cp563 embedded_ct test cc 4 40 Chapter 4 enum_ overloading Option enum overloading no_enum_overloading Default enum overloading Description Enable or disable support for using operator functions to overload builtin operations on enum typed operands Example To disable overloading builtin operations on enum typed operands enter cp563 no_enum_overloading test cc Compiler Use error_limit e Option enumber error_limit number Arguments An err
74. qualifiers bad_dynamic_cast_type the type in a dynamic_cast must be a pointer or reference to a complete class type or void bad_ptr_dynamic_cast_operand the operand of a pointer dynamic_cast must be a pointer to a complete class type bad_ref_dynamic_cast_operand the operand of a reference dynamic_cast must be an lvalue of a complete class type dynamic_cast_operand_must_be_polymorphic the operand of a runtime dynamic_cast must have a polymorphic class type cl bool option only in cplusplus bool option can be used only when compiling C array_type_not allowed an array type is not allowed here Error Messages B 51 0702 0703 0704 0705 0706 0707 0708 0709 0710 0711 0712 0713 0714 0715 exp_assign 9 expected an exp_declarator_in_condition_decl expected a declarator in condition declaration redeclaration of condition decl name xxxx declared in condition may not be redeclared in this scope default_template_arg_not_allowed default template arguments are not allowed for function templates exp_comma_or_gt EE expected a or gt missing template_param list expected a template parameter list incr of bool deprecated incrementing a bool value is deprecated bool type_not allowed bool type is not allowed base_class_offset too large offset of base class entity within class entity is too large
75. tape with more than one product use the non rewinding device for installing the products 4 Run the installation script sh install Follow the instructions appearing on your screen 1 6 Chapter 1 First a question appears about where to install the software The default answer is usr local On certain sites you may want to select another location On some hosts the installation script asks if you want to install SW000098 the Flexible License Manager FLEXlm If you do not already have FLEXlm on your system you must install it otherwise the product will not work on those hosts See section 1 4 Licensing TASKING Products If the script detects that the software has been installed before the following messages appear on the screen WARNING SWxxxxxx xxxx xxxx already installed Do you want to REINSTALL y n Answering n no to this guestion causes installation to abort and the following message being displayed gt Installation stopped on user request lt Answering y yes to this question causes installation to continue And the final message will be Installation of SWxxxxxx xxxx xxxx completed For tape install remove the temporary installation directory with the following commands cd tmp rm rf instdir If you purchased a protected TASKING product license the software product as explained in section 1 4 Licensing TASKING Products 7 Logout Software Installation 1 7 1 3 1
76. temp_not_allowed initialization requiring a temporary or conversion is not allowed decl_hides_function_parameter declaration of xxxx hides function parameter nonconst ref init from rvalue initial value of reference to non const must be an lvalue template_not allowed template is not allowed not a_class_template type is not a class template function template named main main is not a valid name for a function template union nonunion mismatch invalid reference to entity kind entity union nonunion mismatch local_type_in_template_arg a template argument may not reference a local type tag kind incompatible with declaration tag kind of xxxx is incompatible with declaration of entity kind entity declared at line xxxx name not tag in file scope the global scope has no tag named xxxx not a tag member entity kind entity has no tag member named xxxx ptr_to member typedef member function typedef allowed for cfront compatibility Error Messages B 35 0473 0475 0476 0477 0478 0479 0481 0482 0484 0485 0486 0487 0488 bad use of member function typedef entity kind entity may be used only in pointer co member declaration nonexternal entity_in template_ arg a template argument may not reference a non external entity id must be_class_or type name n m name followed by must be a
77. that definition satisfies whatever references there might be to that entity the prelinker will see no need to request an instantiation of the entity If you add a specialization to a program that has previously been compiled the prelinker will notice that too and remove the assignment of the instantiation from the proper ii file The ii files should not in general reguire any manual intervention One exception if a definition is changed in such a way that some instantiation no longer compiles it gets errors and at the same time a specialization is added in another file and the first file is being recompiled before the specialization file and is getting errors the ii file for the file getting the errors must be deleted manually to allow the prelinker to regenerate it Language Implementation 3 29 If you supplied the v option to the control program cc563 and the prelinker changes an instantiation assignment the prelinker will issue messages like C prelinker A lt int gt f assigned to file test o C prelinker executing cc563 c test cc The automatic instantiation scheme can coexist with partial explicit control of instantiation by you through the use of pragmas or command line specification of the instantiation mode See the following sections Instantiations are normally generated as part of the object file of the translation unit in which the instantiations are performed But when one instantiation per obje
78. what follows the pragma hdrstop does not justify the creation of another PCH file pragma no_pch may be used to suppress precompiled header processing for a given source file Command line option pch_dir directory name is used to specify the directory in which to search for and or create a PCH file Moreover when the host system does not support memory mapping and preallocated memory is used instead then one of the command line options pch create_pch or use_pch if it appears at all must be the first option on the command line 3 42 Chapter 3 3 7 4 PERFORMANCE ISSUES The relative overhead incurred in writing out and reading back in a precompiled header file is quite small for reasonably large header files In general it does not cost much to write a precompiled header file out even if it does not end up being used and if it 7s used it almost always produces a significant speedup in compilation The problem is that the precompiled header files can be quite large from a minimum of about 250K bytes to several megabytes or more and so one probably does not want many of them sitting around Thus despite the faster recompilations precompiled header processing is not likely to be justified for an arbitrary set of files with nonuniform initial sequences of preprocessing directives Rather the greatest benefit occurs when a number of source files can share the same PCH file The more sharing the less disk space
79. when a cc is recompiled the prefix section of a pch is read in for comparison with the current source file If the command line options are identical if xxx h has not been modified and so forth then instead of opening xxx h and processing it line by line the C compiler reads in the rest of a pch and thereby establishes the state for the rest of the compilation It may be that more than one PCH file is applicable to a given compilation If so the largest i e the one representing the most preprocessing directives from the primary source file is used For instance consider a primary source file that begins with include xxx h finclude yyy h finclude zzz h If there is one PCH file for xxx h and a second for xxx h and yyy h the latter will be selected assuming both are applicable to the current compilation Moreover after the PCH file for the first two headers is read in and the third is compiled a new PCH file for all three headers may be created When a precompiled header file is created it takes the name of the primary source file with the suffix replaced by an implementation specified suffix pch by default Unless pch_ dir is specified see below it is created in the directory of the primary source file When a precompiled header file is created or used a message such as test cc creating precompiled header file test pch 3 40 Chapter 3 is issued The user may suppress th
80. when compiling several input files cl too many arguments too many arguments on command line cl no_output file needed an output file was specified but none is needed cl il display reguires il file name IL display reguires name of IL file void_template_parameter a template parameter may not have void type too_many_unused_instantiations excessive recursive instantiation of entity kind entity due to instantiate all mode cl_strict_ansi_incompatible_with_anachronisms strict ANSI mode is incompatible with allowing anachronisms void_throw a throw expression may not have void type cl tim local conflicts_with auto instantiation local instantiation mode is incompatible with automatic instantiation abstract_class_param_type parameter of abstract class type type is not allowed array_of abstract class array of abstract class type is not allowed B 44 0605 0606 0607 0608 0609 0611 0612 0613 0614 0615 0616 0617 0618 Appendix B float template_paramecter floating point template parameter is nonstandard pragma_must_precede_declaration this pragma must immediately precede a declaration pragma_must_precede_statement this pragma must immediately precede a statement pragma_must_precede_decl_or_stmt this pragma must immediately precede a declaration or statement pragma_may_not_be_used_here this kind of pragma may not be use
81. would reserve one copy of feature SWxxxxxx xx for user pat three copies for user lee and one copy for anyone on a computer with the hostname of terry and would cause QUEUED messages to be omitted from the log file In addition user joe and group pinheads would not be allowed to use the feature SWXXXXXX XX GROUP pinheads moe larry curley RESERVE 1 SWxxxxxx xx USER pat RESERVE 3 SWXXXXXX XX USER lee RESERVE 1 SWxxxxxx xx HOST terry EXCLUDE SWxxxxxx xx USER joe EXCLUDE SWxxxxxx xx GROUP pinheads NOLOG OUEUED 3_LICENSE ADMINISTRATION TOOLS The following utilities are provided to facilitate license management by your system administrator In certain cases execution access to a utility is restricted to users with root privileges Complete descriptions of these utilities are provided at the end of this section Imcksum Prints license checksums lmmdiag Windows only Diagnoses license checkout problems lmdown Gracefully shuts down all license daemons both Imgrd all vendor daemons such as Tasking on the license server Flexible License Manager FLEXIm A 9 Imgrd The main daemon program for FLEXIm lmbostid Reports the hostid of a system Imremove Removes a single user s license for a specified feature lmreread Causes the license daemon to reread the license file and start any new vendor daemons lmstat Helps you monitor the status of all network li
82. 00 0 cece eee A 33 6 Frequently Asked Questions FAQS A 37 6 1 License File Questions 1 0 0 0 000 A 37 6 2 FLEXI Version neg ag hea bee eke eee O AR A 37 6 3 Windows Questions serseri takas eee A 38 6 4 TASKING Questions YF FF AD A 39 6 5 Using FLEXIm for Floating Licenses A 41 ERROR MESSAGES B 1 1 TntroductiOn ges eb ee addy FHS ts Ed A B 3 2 Messages tel oes nU lU Id oyd Bevan made aden B 4 VII Vill Table of Contents UTILITY PROGRAMS C 1 Introduction errai ge Y eee ee RA be I he ERS C 3 BrelinKews ue wb RR ln a At Me fd Gn Yaw y C 3 Lu o rate ate mia pu mine aea aa FR AFON FRIFO EEF C 5 INDEX Manual Purpose and Structure IX MANUAL PURPOSE AND STRUCTURE PURPOSE This manual is aimed at users of the TASKING DSP56xxx Family C Compiler It assumes that you are conversant with the C and C language MANUAL STRUCTURE Related Publications Conventions Used In This Manual 1 Software Installation Describes the installation of the C Cross Compiler for the DSP56xxx family of processors 2 Overview Provides an overview of the TASKING DSP56xxx Family toolchain and gives you some familiarity with the different parts of it and their relationship A sample session explains how to build an application from your C file 3 Language Implementation Concentrates on the approach of the DSP56xxx architecture and describes the language implementation The
83. 1 Right click on the My Computer icon on your desktop and select Properties from the menu The System Properties dialog appears Select the Environment tab In the Variable field enter CP563INC In the Value field enter c c563 include Click on the Set button then click OK Software Installation 1 5 1 3 INSTALLATION FOR UNIX HOSTS 1 Login as a user Be sure you have read write and execute permissions in the installation directory Otherwise login as root or use the su command If you are a first time user decide where you want to install the product By default it will be installed in usr local 2 For CD ROM install insert the CD ROM into the CD ROM drive Mount the CD ROM on a directory for example cdrom Be sure to use a ISO 9660 file system with Rock Ridge extensions enabled See the UNIX manuals page about mount for details Or For tape install insert the tape into the tape unit and create a directory where the contents of the tape can be copied to Consider the created directory as a temporary workspace that can be deleted after installation has succeeded For example mkdir tmp instdir 3 For CD ROM install go to the directory on which the CD ROM is mounted cd cdrom For tape install copy the contents of the tape to the temporary workspace using the following commands cd tmp instdir tar xvf dev tape where tape is the name of your tape device amp If you have received a
84. 1 SETTING THE ENVIRONMENT After you have installed the software you can set some environment variables to make invocation of the tools easier when invoking the tools from a Windows Command Prompt When you are using EDE all settings are configurable from within EDE A list of all environment variables used by the toolchain is present in the section 2 3 Environment Variables in the chapter Overview Make sure that your path is set to include all of the executables you have just installed If you installed the software under C C563 you can include the executable directory C C563 BIN in your search path 1 4 Q Chapter 1 In EDE from the Project menu select Directories Add one or more executable directory paths to the Executable Files Path field The environment variable TMPDIR can be used to specify a directory where programs can place temporary files The C compiler uses the environment variable CP56INC DSP5600x or CP563INC DSP563xx DSP566xx to search for include files An example of setting this variable is given below d gt See also the section Include Files in the chapter Compiler Use For the DSP563xx DSP566xx family the default installation path is c563 Example Windows 95 98 6 Add the following line to your autoexec bat file set CP563INC c c563 include You can also type this line in a Command Prompt window but you will loose this setting after you close the window Example Windows NT
85. 2 0813 0814 0815 0816 0817 0818 unexpected_end_of default_arg unexpected end of default argument expression default init of reference default initialization of reference is not allowed uninitialized field with const member uninitialized entity kind entity has a const member uninitialized base class with const member uninitialized base class type has a const member missing default_constructor_on_const const entity kind entity requires an initializer class type has no explicitly declared default constructor missing default constructor_on_unnamed const const object requires an initializer class type has no explicitly declared default constructor cl impl extern c conv option only in cplusplus option implicit extern_c type_conversion can be used only when compiling C cl_strict_ansi_incompatible_with_long_preserving strict ANSI mode is incompatible with long preserving rules useless_type_qualifier_on_return_type type qualifier on return type is meaningless type_qualifier_on_void_return_type in a function definition a type qualifier on a void return type is not allowed static data member not allowed static data member declaration is not allowed in this class invalid declaration template instantiation resulted in an invalid function declaration B 60 0819 0820 0821 0822 0824 0828 0829 0830
86. A 33 exception 4 43 exit status 5 6 explicit specifier 4 44 extension 2 10 a 2 10 Index abs 2 11 asm 2 10 C 2 10 cal 2 11 cc 2 10 cld 2 11 cpp 2 10 Cxx 2 10 dsc 2 10 bex 2 11 ic 2 10 nl 2 11 Ast 2 11 map 2 11 mc 2 10 mo 2 10 ms 2 10 obj 2 10 out 2 10 pr 2 10 src 2 10 sre 2 11 extensions to C 3 3 3 5 extern C 4 52 extern C 4 52 extern inline 4 46 F FAQ FLEXIm A 37 file extensions 2 10 4 3 Flexible License Manager A 1 FLEXIm A 1 daemon log file A 25 daemon options file A 7 FAQ A 37 frequently asked questions A 37 license administration tools A 8 for Windows A 22 license errors A 33 floating license 1 8 Index Index 5 for init statement 4 47 4 68 friend injection 4 49 function names unqualified 4 20 G guiding declarations 4 51 hdrstop 4 115 header stop 3 36 3 41 hostid determining 1 15 hostname determining 1 16 ident 4 116 implicit inclusion 3 33 include files 4 112 at beginning of compilation 4 87 default directory 4 113 suffix 4 55 4 114 inline function 4 46 inlining 4 57 installation licensing 1 8 UNIX 1 5 Windows 1 3 Windows 95 1 3 Windows NT 1 3 instantiate 4 115 instantiation 3 24 automatic 3 27 directory 4 60 one file per object 4 80 pending 4 86 template 4 58 instantiation information file 2 5 instantiation mode 3 29 all 3 30 local 3 30
87. B bad gualified function type a gualified function type cannot be used to declare a nonmember function or a static member function bad gualified function type_paramcter a gualified function type cannot be used to declare a parameter ptr_or ref to gualified function type cannot create a pointer or reference to gualified function type nonstd braces extra braces are nonstandard bad cmd line macro invalid macro definition nonstandard ptr minus_ ptr subtraction of pointer types type and type is nonstandard empty_template_param_list an empty template parameter list is not allowed in a template template parameter declaration exp_class expected class struct_not allowed the class Keyword must be used when declaring a template template parameter virtual function decl hidden entity kind entity is hidden by entity virtual function override intended no_qualified_friend_definition a qualified name is not allowed for a friend declaration that is a function definition not_compatible_with_templ_templ_param entity kind entity is not compatible with entity kind entity Error Messages B 75 1018 1019 1020 1021 1022 1025 1026 1027 1028 1029 1030 storage_class_requires_function_or_variable a storage class may not be specified here member using must _be visible in direct base class member designated by a using de
88. Implementation 3 9 e The number of elements in an array may be specified in an array delete operation The value is ignored e A single operator and operator function can be used to overload both prefix and postfix operations e The base class name may be omitted in a base class initializer if there is only one immediate base class e Assignment to this in constructors and destructors is allowed This is allowed only if anachronisms are enabled and the assignment to this configuration parameter is enabled e A bound function pointer a pointer to a member function for a given object can be cast to a pointer to a function e A nested class name may be used as a non nested class name provided no other class of that name has been declared The anachronism is not applied to template classes e A reference to a non const type may be initialized from a value of a different type A temporary is created it is initialized from the converted initial value and the reference is set to the temporary e A reference to a non const class type may be initialized from an rvalue of the class type or a derived class thereof No additional temporary is used e A function with old style parameter declarations is allowed and may participate in function overloading as though it were prototyped Default argument promotion is not applied to parameter types of such functions when the check for compatibility is done so that the following
89. NG products licensed through FLEXIm contain a number of utilities for managing licenses These utilities are bundled in the form of an extra product under the name SW000098 TASKING products themselves contain two additional files for FLEXlm in a ex m subdirectory Tasking The Tasking daemon vendor daemon license dat A template license file If you have already installed FLEXIm e g as part of another product then it is not needed to install the bundled SW000098 After installing SWO000098 on UNIX the directory usr 1local flexlm will contain two subdirectories bin and licenses After installing SW000098 on Windows the directory c N 1exlm will contain the subdirectory bin The exact location may differ if FLEXIm has already been installed as part of a non TASKING product but in general there will be a directory for executables such as bin That directory must contain a copy of the Tasking daemon shipped with every TASKING product It also contains the files lmgrd The FLEXlm daemon license daemon lm A group of FLEXIm license administration utilities Next to it a license file must be present containing the information of all licenses This file is usually called License dat The default location of the license file is in directory c flexim for Windows and in usr local flexlm licenses for UNIX If you did install SW000098 then the licenses directory on UNIX will be empty and on Windows the file license dat will be empty In tha
90. OD Table of Contents SOFTWARE INSTALLATION 1 1 11 Introduction so ee GG a dead deere ih AW YF y 4 1 3 1 2 Installation for WindOwS Y cece 1 3 121 Setting the Environment Y FFF FFA lo 13 Installation for UNIX Hosts V eee 1 5 1 3 1 Setting the Environment 00 0 00000 e eee 1 7 1 4 Licensing TASKING Products 0 00000000 1 8 1 4 1 Obtaining License Information 005 1 8 1 4 2 Installing Node Locked Licenses 1 9 1 4 3 Installing Floating Licenses 00 0000 cee 1 10 1 4 4 Starting the License Daemon 0 000005 1 12 1 4 5 Setting Up the License Daemon to Run Automatically 1 13 1 4 6 Modifying the License File Location 1 14 1 4 7 How to Determine the Hostid 1 15 1 4 8 How to Determine the Hostname 1 16 OVERVIEW 2 1 21 Introduction to C Compiler g 2 3 2 2 Development Structure io asirrenekis niare i eataa 2 4 221 The Prelinker Phase ba yR YG ew RYW 2 5 2 22 The Muncher Phas amp FF a 2 7 2 3 Environment Variables F Fa 2 8 2 4 File EXtensiofi8 46 2 0 rante diced cide G ducted Dd o i 2 10 LANGUAGE IMPLEMENTATION 3 1 3 1 TntroductiOn ep ek eee dd CM FOOD Lan ees 32 3 2 C Language Extension Keywords 3J 3 33 C Dialect Accepted Ru 3 5 3 3 1 New Language Features Accepted
91. OWS For the 32 Bit Windows Platforms an Imtools exe Windows program is provided It has the same functionality as listed in the previous sections but is graphically oriented Simply run the program Start Programs TASKING FLEXlm FLEXlm Tools and choose a button for the functionality reguired Refer to the previous sections for information about the options of each feature The command line interface is replaced by pop up dialogs that can be filled out The central EDIT field is where the license file path is placed This will be used for all other functions and replaces the c icense_file argument in the other utilities The HOSTID button displays the hostid s for the computer on which the program is running The TIME button prints out the system s internal time settings intended to diagnose any time zone problems The TCP Settings button is intended to fix a bug in the Microsoft TCP protocol stack which has a symptom of very slow connections to computers After pressing this button the system will need to be rebooted for the settings to become effective Flexible License Manager FLEXIm A 23 3 11 2 FLEXLM LICENSE MANAGER FOR WINDOWS Imgrd exe can be run manually or using the graphical Windows tool You can start this tool from the FLEXIm program folder Click on Start Programs TASKING FLEXlm FLEX1m Tools FLEXIm License Manager x i Setup Licenses Diagnostics About m
92. SP56004 Digital Signal Processor User s Manual Motorola Inc DSP56003 005 Digital Signal Processor User s Manual Motorola Inc DSP56300 24 Bit Digital Signal Processor Family Manual Motorola Inc DSP56301 24 Bit Digital Signal Processor User s Manual Motorola Inc DSP56600 Digital Signal Processor Family Manual Motorola Inc XII Manual Purpose and Structure CONVENTIONS USED IN THIS MANUAL The notation used to describe the format of call lines is given below Items shown inside curly braces enclose a list from which you must choose an item Items shown inside sguare brackets enclose items that are optional The vertical bar separates items in a list It can be read as OR italics Items shown in italic letters mean that you have to substitute the item If italic items are inside square brackets they are optional For example filename means type the name of your file in place of the word filename An ellipsis indicates that you can repeat the preceding item zero or more times screen font Represents input examples and screen output examples bold font Represents a command name an option or a complete command line which you can enter For example command option filename This line could be written in plain English as execute the command command with the optional options option and with the file filename Illustrations The following illustrations are used in this manual
93. Select lifetime for temporaries Enable or disable K amp R arithmetic conversion rules for longs Select memory model mixed static or reentrant Select default memory space X Y L or P Specify stack not in L memory only for cp56 Select memory model 24 bit 16 24 bit 16 bit or DSP566xx Do not use hardware stack extension Select default memory space X Y L or P Specify stack not in L memory only for cp563 Enable or disable the support for namespaces New style for scoping rules Do syntax checking only Preprocess only Remove line control information and comments Enable or disable the anachronism of allowing a reference to nonconst to bind to a class rvalue of the right type 4 7 4 8 Chapter 4 Option Description nonstd_qualifier_deduction no_nonstd gualifier_deduction nonstd_using_decl no_nonstd using decl no_preproc only no_use_ before _set_warnings a no_warnings Ww old_for_init old_line_commands old_specializations no_old_specializations old_style_preprocessing one instantiation_per_object output file 0 file pch pch_dir dir pch messages no_pch messages pch_verbose pending instantiations n Use or do not use a non standard template argument deduction method Allow or disallow ungualified name in non member using declaration Specify that a full compilation should be done not just preprocessing
94. Specifies an alternative path for include files for the C compiler cp563 LM_LICENSE_FILE With this variable you specify the location of the license data file You only need to specify this variable if your host uses the FLEXIm licence manager Overview Environment Variable Description PATH With this variable you specify the directory in which the executables reside default productNbin This allows you to call the executables when you are not in the bin directory TMPDIR With this variable you specify the location where programs can create temporary files Table 2 1 Environment variables 2 9 2 10 Chapter 2 2 4 FILE EXTENSIONS For compatibility with future TASKING Cross Software the following extensions are suggested Source files CC CXX cpp asm dsc C source file input for C compiler C source file input for C compiler C source file input for C compiler C source file input for C compiler or for C compiler if you use the c option of the control program hand written assembly source file input for the assembler description file input for linker locator control file with defines for description file input for linker locator Generated source files ic STC Object files obj temporary C source file generated by the C compiler input for the C compiler assembly source file gener
95. XIm installation directory default usr local flexlm cd usr local flexlm 3 For C shell users start the license daemon by typing the following bin lmgrd 2 p c licenses license dat gt gt amp var tmp license log amp Or for Bourne shell users start the license daemon by typing the following bin lmgrd 2 p c licenses license dat gt gt var tmp license log 2 gt amp 1 amp Software Installation 1 13 In these two commands the 2 and p options restrict the use of the Imdown and Imremove license administration tools to the license administrator You omit these options if you want Refer to the usage of lmgrd in Appendix A Flexible License Manager FLEXIm for more information 1 4 5 SETTING UP THE LICENSE DAEMON TO RUN AUTOMATICALLY To set up the license daemon so that it runs automatically whenever a license server reboots follow the instructions below that are approrpiate for your platform steps on each license server Windows 1 From the Windows Start menu select Programs gt TASKING FLEXIm gt FLEXIm License Manager The license manager tool appears In the Setup tab enable the Start Server at Power Up check box Close the program by clicking on the OK button If a question appears answer Yes to save your settings UNIX A In performing any of the procedures below keep in mind the following e Before you edit any system file make a backup copy SunOS4 1 2
96. _code gen Description Do syntax checking only Do not generate a C file Example cp563 no_ code gen test cc 4 69 4 70 Chapter 4 no_line_commands P Option P no_line_commands Description Do preprocessing only Write preprocessed text to the preprocessing output file with comments removed and without line control information When you use the P option use the o option to separate the output from the header produced by the compiler Examples cp563 P o preout test cc d gt comments C preprocess E dependencies M Compiler Use 4 71 nonconst ref anachronism Option nonconst ref anachronism no_nonconst_ ref anachronism Default nonconst ref anachronism Description Enable or disable the anachronism of allowing a reference to nonconst to bind to a class rvalue of the right type This anachronism is also enabled by the anachronisms option and the cfront compatibility options Example cp563 no_nonconst_ref_anachronism test cc d gt anachronisms cfront_2 1 b cfront_3 0 Section Anachronisms Accepted in chapter Language Implementation 4 72 Chapter 4 nonstd_ gualifier deduction Option nonstd_qualifier_deduction no_nonstd gualifier deduction Default no_nonstd gualifier deduction Description Controls whether nonstandard template argument deduction should be performed in the gualifier portion of a gualified
97. agma instantiate A lt int gt pragma do_not_instantiate A lt int gt f The template definition of a template entity must be present in the compilation for an instantiation to occur If an instantiation is explicitly requested by use of the instantiate pragma and no template definition is available or a specific definition is provided an error is issued template lt class T gt void f1 T No body provided template lt class T gt void gl T No body provided 3 32 Chapter 3 void fl int Specific definition void main int Ly double d f1 i fl d gl i gl d pragma instantiate void fl int error specific definition pragma instantiate void gl int error no body provided f1 double and g1 double will not be instantiated because no bodies were supplied but no errors will be produced during the compilation if no bodies are supplied at link time a linker error will be produced A member function name e g A lt int gt f can only be used as a pragma argument if it refers to a single user defined member function i e not an overloaded function Compiler generated functions are not considered so a name may refer to a user defined constructor even if a compiler generated copy constructor of the same name exists Overloaded member functions can be instantiated by providing the complete member function declaration as in pragma instantiate char A lt int gt f
98. ainly the header files themselves meet certain requirements e The header stop point must appear at file scope it may not be within an unclosed scope established by a header file For example a PCH file will not be created in this case xxx h class A xxx C finclude xxx h int a J e The header stop point may not be inside a declaration started within a header file nor in C may it be part of a declaration list of a linkage specification For example in the following case the header stop point is int but since it is not the start of a new declaration no PCH file will be created yyy h static yyy C include yyy h int a e Similarly the header stop point may not be inside a ifi block or a define started within a header file 3 37 3 38 Chapter 3 e The processing preceding the header stop must not have produced any errors Note warnings and other diagnostics will not be reproduced when the PCH file is reused e No references to predefined macros __ DATE__ or __ TIME__ may have appeared e No use of the line preprocessing directive may have appeared e pragma no_pch see below must not have appeared e The code preceding the header stop point must have introduced a sufficient number of declarations to justify the overhead associated with precompiled headers The minimum number of declarations reguired is 1 When the host system does not support memory mapping
99. ally called license dat The default location of the license file is in directory c flex1m for Windows and in usr local flexlm licenses for UNIX Software Installation 1 11 B If you wish to install the license file in a different directory see section 1 4 6 Modifying the License File Location If the license file does not exist you have to create it using an ASCII editor You can use the license file License dat from the toolchain s flexlm subdirectory as a template If you already have a license file add the license information to the existing license file If the SERVER lines in the license file are the same as the SERVER lines in the License Information Form you do not need to add this same information again If the SERVER lines are not the same you must use another license file See section 1 4 6 Modifying the License File Location for additional information Step 5 On each PC or workstation where you will use the TASKING software product the location of the license file must be known If it differs from the default location c flexlm license dat for Windows usr local flexlm licenses license dat for UNIX then you must set the environment variable LM LICENSE FILE See section 1 4 6 Modifying tbe License File Location for more information Step 6 Now all license infomation is entered the license manager must be started see section section 1 4 4 Or if it is already running you must notify the li
100. ame specified with the I option or in CP563INC may or may not be terminated with a directory separator because cp563 inserts this separator if omitted 4 114 Chapter 4 When you specify more than one directory to the environment variable CP563INC you have to use one of the following separator characters PC Space eg set CP563INC include proj include UNIX Space eg setenv CP563INC include proj include If the include directory is specified as e g I the option indicates the point in the list of I or include_ directory options at which the search for file names enclosed in lt gt should begin That is the search for lt gt names should only consider directories named in I or include_directory options following the I and the directories of items 3 and 4 above I also removes the directory containing the current input file item 1 above from the search path for file names enclosed in yoo An include directory specified with the sys_include option is considered a system include directory Warnings are suppressed when processing files found in system include directories If the filename has no suffix it will be searched for by appending each of a set of include file suffixes When searching in a given directory all of the suffixes are tried in that directory before moving on to the next search directory The default set of suffixes is no extension h and hpp The defaul
101. amp If you do not have the program tkhostid you can download it from our Web site at http www tasking com support flexlm tkhostid zip It is also on every product CD that includes FLEXlm 1 16 Chapter 1 1 4 8 HOW TO DETERMINE THE HOSTNAME To retrieve the hostname of a machine use one of the following methods Platform Method SunOS Solaris hostname Windows 95 98 Go to the Control Panel open Network click on Identification Look for Computer name Windows NT Go to the Control Panel open Network In the Identification tab look for Computer Name Table 1 2 Determine the hostname OVERVIEW all TASKING M daldVHyD Overview 2 3 2 1 INTRODUCTION TO C COMPILER This manual provides a functional description of the TASKING DSP56xxx C Compiler This manual uses cp56 or cp563 the name of the binary as a shorthand notation for TASKING DSP5600x or DSP563xx DSP566xx C Compiler You should be familiar with the C language and with the ANSI ISO C language The C compiler can be seen as a preprocessor or front end which accepts C source files or sources using C language features The output generated by cp563 is DSP563xx or DSP566xx C which can be translated with the C compiler c563 For the DSP5600x family the executable names end in 56 The C compiler is part of a complete toolchain For details about the C compi
102. an the time specified by TASKING What happens if my system crashes or I upgrade to a new system You will need to contact Technical Support for temporary license keys due to a system crash or to move from one system to another system You will then need to work with your local sales representative to obtain a permanent new license key Flexible License Manager FLEXIm 6 5 USING FLEXLM FOR FLOATING LICENSES Does FLEXlm work across the internet Yes A server on the internet will serve licenses to anyone else on the internet This can be limited with the INTERNET attribute on the FEATURE line which limits access to a range of internet addresses You can also use the INCLUDE and EXCLUDE options in the daemon option file to allow or deny access to clients running on a range of internet addresses Does FLEXlm work with Internet firewalls Many firewalls require that port numbers be specified to the firewall FLEXIm v5 Imgrd supports this If my client dies does the server free the license Yes unless the client s whole system crashes Assuming communications is TCP the license is automatically freed immediately If communications are UDP then the license is freed after the UDP timeout which is set by each vendor but defaults to 45 minutes UDP communications is normally only set by the end user so TCP should be assumed If the whole system crashes then the license is not freed and you should use Tmremove to f
103. and networking libraries since this tends to improve guality in general as well as making NIS DNS work On PCs if a checkout seems to take 3 minutes and then fails this is usually because the system is configured for a dial up DNS server which is not currently available The solution here is to turn off DNS Finally hostnames must NOT have periods in the name These are not legal hostnames although PCs will allow you to enter them and they will not work with DNS We re using FLEXIm over a wide area network What can we do to improve performance FLEXIm network traffic should be minimized With the most common uses of FLEXIm traffic is negligible In particular checkout checkin and heartbeats use very little networking traffic There are two items however which can send considerably more data and should be avoided or used sparingly e Imstat a should be used sparingly lmstat a should not be used more than say once every 15 minutes and should be particularly avoided when there s a lot of features or concurrent users and therefore a lot of data to transmit say more than 20 concurrent users or features e Prior to FLEXIm v5 the port host mode of the LM LICENSE_ FILE environment variable should be avoided especially when the license file has many features or there are a lot of license files included in LM LICENSE FILE The license file information is sent via the network and can place a heavy load Failu
104. ands P 4 80 Chapter 4 one instantiation_per_ object Option one_instantiation_per_object Description Put out each template instantiation in this compilation function or static data member in a separate object file The primary object file contains everything else in the compilation that is everything that is not an instantiation Having each instantiation in a separate object file is very useful when creating libraries because it allows the user of the library to pull in only the instantiations that are needed That can be essential if two different libraries include some of the same instantiations Example To create separate instantiation files enter cp563 one_instantiation_per_object test cc d gt Section Template Instantiation in chapter Language Implementation Compiler Use 4 81 output o Option o file output file Arguments An output filename specifying the preprocessing or intermediate language output file Default No intermediate output file is generated Description Use file as output filename for the preprocessing or intermediate language output file Example To use the file my pre as the preprocessing output file enter cp563 E o my pre test cc d gt preprocess E no_line_ commands P 4 82 Chapter 4 pch Option pch Description Automatically use and or create a precompiled header file For details see the Precompiled H
105. array_new_and_delete test cc 4 21 4 22 Chapter 4 auto_instantiation T Option T auto instantiation no auto instantiation Default auto instantiation Description T is eguivalent to auto instantiation Enable or disable automatic instantiation of templates Example cp563 mno auto instantiation test cc d gt instantiate t Section Template Instantiation in chapter Language Implementation Compiler Use 4 23 base_assign_op_is_default Option base_assign_op_is_default no_base assign_op is default Default base assign_op is default in cfront compatibility mode Description Enable or disable the anachronism of accepting a copy assignment operator that has an input parameter that is a reference to a base class as a default copy assignment operator for the derived class Example cp563 base assign_ op is_default test cc 4 24 bool Option bool no_bool Default bool Description Enable or disable recognition of the bool keyword Example cp563 no_bool test cc Chapter 4 Compiler Use 4 25 brief_diagnostics Option brief_diagnostics no_brief_diagnostics Default brief_diagnostics Description Enable or disable a mode in which a shorter form of the diagnostic output is used When enabled the original source line is not displayed and the error message text is not wrapped when too long to
106. as can be used to control the instantiation of specific template entities or sets of template entities There are three instantiation pragmas e The instantiate pragma causes a specified entity to be instantiated e The do_not_instantiate pragma suppresses the instantiation of a specified entity It is typically used to suppress the instantiation of an entity for which a specific definition will be supplied Language Implementation 3 31 e The can instantiate pragma indicates that a specified entity can be instantiated in the current compilation but need not be it is used in conjunction with automatic instantiation to indicate potential sites for instantiation if the template entity turns out to be required The argument to the instantiation pragma may be a template class name A lt int gt a template class declaration class A lt int gt a member function name A lt int gt f a static data member name A lt int gt i a static data declaration int A lt int gt i a member function declaration void A lt int gt f int char a template function declaration char f int float A pragma in which the argument is a template class name e g A lt int gt or class A lt int gt is equivalent to repeating the pragma for each member function and static data member declared in the class When instantiating an entire class a given member function or static data member may be excluded using the do_not_instantiate pragma For example pr
107. as in those files to request instantiation of the entities there Our compiler s automatic instantiation method works as follows 1 The first time the source files of a program are compiled no template entities are instantiated However the generated object files contain information about things that could have been instantiated in each compilation For any source file that makes use of a template instantiation an associated ii file is created if one does not already exist e g the compilation of abc cc would result in the creation of abc ii 2 When the object files are linked together a program called the prelinker prelk563 for the DSP563xx DSP566xx prelk56 for the DSP5600x is run It examines the object files looking for references and definitions of template entities and for the added information about entities that could be instantiated 3 Isn t this always the case No Suppose that file A contains a definition of class X and a reference to Stack lt X gt push and that file B contains the definition for the member function push There would be no file containing both the definition of push and the definition of x 3 28 Chapter 3 If the prelinker finds a reference to a template entity for which there is no definition anywhere in the set of object files it looks for a file that indicates that it could instantiate that template entity When it finds such a file it assigns the instantiation to it The set of instan
108. ass type is not allowed bad use of main function main may not be called or have its address taken initializer not allowed _on array_new a new initializer may not be specified for an array member function redecl outside class member function entity may not be redeclared outside its class ptr_to_incomplete_class_type_not allowed pointer to incomplete class type is not allowed ref to nested function var reference to local variable of enclosing function is not allowed B 30 0395 0397 0398 0399 0400 0401 0403 0404 0405 0406 0407 0408 Appendix B single arg postfix incr decr anachronism single argument function used for postfix xxxx anachronism bad default assignment implicitly generated assignment operator cannot copy nonstd array_cast cast to array type is nonstandard treated as cast to rype class_with_op_new_but no op delete entity kind entity has an operator newxxxx but no default operator deletexxxx class_with_op_delete_but_no_op_new entity kind entity has a default operator deletexxxx but no operator NEWXXXX base_class_with_nonvirtual_dtor destructor for base class type is not virtual member_function_redeclaration entity kind entity has already been declared inline_main function main may not be declared inline class_and_member_function_name_conflict member fu
109. ate default 64 Dis allow or allow normal functions as template instantiation Enable or disable recognition of guiding declarations of template functions Enable or disable old style template specialization pending_instantiations n distinct_template_signatures no_distinct_template_signatures guiding_decls no_guiding_decls old_specializations no_old specializations Precompiled header options Automatically use and or create a precompiled header file Create a precompiled header file with the specified name Use a precompiled header file of the specified name Specify directory dir in which to search for and or create a precompiled header file Enable or disable the display of a message indicating that a precompiled header file was created or used in the current compilation Generate a message when a precompiled header file cannot be used pch create_pch file use_pch file pch_dir dir pch messages no_pch_ messages pch_verbose Output file options Specify name of preprocess or intermediate output file Specify name of generated C output file output file o file gen_c_file_name file Diagnostic options Display invocation syntax Display version header only Generate compilation timing information Send diagnostics to error list file version V V timing H error_output efile 4 15 4 16
110. ate all template entities declared or referenced in the compilation unit For each fully instantiated template class all of its member functions and static data members will be instantiated whether or not they were used Non member template functions will be instantiated even if the only reference was a declaration instantiate local Similar to instantiate used except that the functions are given internal linkage This is intended to provide a very simple mechanism for those getting started with templates The compiler will instantiate the functions that are used in each compilation unit as local functions and the program will link and run correctly barring problems due to multiple copies of local static variables However one may end up with many copies of the instantiated functions so this is not suitable for production use instantiate local can not be used in conjunction with automatic template instantiation If automatic instantiation instantiate local option If automatic instantiation is not enabled by default use of instantiate local and auto_instantiation is an error In the case where the cc563 command is given a single file to compile and link e g cc563 test cc the compiler knows that all instantiations will have to be done in the single source file Therefore it uses the instantiate used mode and suppresses automatic instantiation 3 5 3 _ INSTANTIATION PRAGMA DIRECTIVES Instantiation pragm
111. ated by the C compiler input for the assembler output file generated by the object reader input for the C muncher C source file generated by the C muncher input for the C compiler assembly source file generated by the C compiler input for the assembler relocatable IEEE 695 object file generated by the assembler input for the linker relocatable IEEE 695 object file generated by the assembler input for the linker Overview 2 11 a object library file out relocatable linker output file abs absolute locator output file IEEE 695 object file hex absolute Intel Hex output file from the locator sre absolute Motorola S record output file from the locator cld absolute Motorola CLAS COFF output file from the locator List files lst assembler list file cal C function call graph file output from the linker nl linker map file map locator map file Error List files ers assembler error messages file elk linker error messages file elc locator error messages file 2 12 OVERVIEW Chapter 2 LANGUAGE IMPLEMENTATION all TASKING M daldVHyD Language Implementation 3 3 3 1 INTRODUCTION The TASKING C compiler cp563 offers a new approach to high level language programming for the DSP56xxx family The C compiler accepts the C language as defined by the ISO IEC 14882 1998 standard with the exceptions listed in section 3 3 It also accepts the language extensions of
112. ault arg type default argument of type type is incompatible with parameter of type type B 24 0311 0312 0313 0314 0315 0316 0317 0318 0319 0320 0321 0322 0323 Appendix B return _type_cannot distinguish functions cannot overload functions distinguished by return type alone no_user_defined_conversion no suitable user defined conversion from type to type exists function_qualifier_not_allowed type qualifier is not allowed on this function virtual_static_not_allowed only nonstatic member functions may be virtual unqual_function_with_qual_object the object has type qualifiers that are not compatible with the member function too_many_virtual_functions program too large to compile too many virtual functions bad_return_type_on_virtual_function_override return type is not identical to nor covariant with return type type of overridden virtual function entity kind entity ambiguous_virtual_function_override override of virtual entity kind entity is ambiguous pure_specifier_on_nonvirtual_ function pure specifier 0 allowed only on virtual functions bad_pure_specifier badly formed pure specifier only 0 is allowed bad data member initialization data member initializer is not allowed abstract_class_object_not allowed object of abstract class type type is not allowed function returning abst
113. ay invocation syntax Enable or disable recognition of alternative tokens Enable or disable anachronisms Perform argument dependent lookup of unqualified function names Enable or disable support for array new and delete Enable or disable automatic instantiation of templates Enable or disable the anachronism of accepting a copy assignment operator with a base class as a default for the derived class Enable or disable recognition of bool Enable or disable a shorter form of diagnostic output Compile C compatible with cfront version 2 1 Compile C compatible with cfront version 3 0 Add class name to the scope of the class Keep comments in the preprocessed output Make string literals const Create a precompiled header file with the specified name Compiler Use Option Description define_macro macro parm list zdef Dmacro parm lisi def dependencies M diag_suppress tag tag diag_remark tag tag diag_warning tag tagl diag_error tag ag display_error_number distinct_template_signatures no_distinct_template_signatures dollar early_tiebreaker embedded no_embedded embedded_c enum_overloading no_enum_ overloading error_limit number enumber error_output efile exceptions no_exceptions X explicit no_explicit Define preprocessor macro Preprocess only Emit de
114. bility of friend declarations Early or late handling of tie breakers in overload resolution Enable or disable support for array new and delete Enable or disable support for namespaces New style for scoping rules Old style for scoping rules implicit_extern_c_type_ conversion no_implicit_extern_c_type_conv ersion suppress_typeinfo_vars suppress vtbl force_vtbl anachronisms no_anachronisms base assign_op is_ default no_base assign_op is default nonconst_ref anachronism no_nonconst_ref_anachronism nonstd_qualifier_deduction no_nonstd gualifier_deduction nonstd_using_decl no_nonstd using decl arg_dep_lookup no_arg_dep lookup class_name_injection no_class_name_injection friend_injection no_friend_injection early_tiebreaker late_tiebreaker array_new and delete no_array_new and delete namespaces no_namespaces new for init old for init 4 13 4 14 Chapter 4 Description Option Enable or disable implicit use of the std namespace when standard header files are included Enable or disable support for RTTI run time type information Enable or disable recognition of bool Enable or disable recognition of typename Enable or disable implicit determination from context whether a template parameter dependent name is a type or nontype Enable or disable a special nonstandard weighting of the
115. bject files because each object file must contain object code and symbolic debugging information for each template entity it references 2 The actual implementation allows for several different suffixes and provides a command line option to change the suffixes sought Language Implementation 3 27 Our approach is a little different It requires that for each instantiation required there is some normal top level explicitly compiled source file that contains the definition of the template entity a reference that causes the instantiation and the declarations of any types reguired for the instantiation gt This requirement can be met in various ways e The Borland convention each h file that declares a template entity also contains either the definition of the entity or includes another file containing the definition e Implicit inclusion when the compiler sees a template declaration in a h file and discovers a need to instantiate that entity it is given permission to go off looking for an associated definition file having the same base name and a different suffix and it implicitly includes that file at the end of the compilation This method allows most programs written using the cfront convention to be compiled with our approach See the section on implicit inclusion e The ad hoc approach you make sure that the files that define template entities also have the definitions of all the available types and add code or pragm
116. c instantiation method 3 27 bool keyword 4 24 cC C language extensions 3 3 3 5 C dialect 3 3 3 5 accepted 3 5 anachronisms accepted 3 8 cfront 2 1 and 3 0 extensions 3 16 cfront 2 1 extensions 3 12 new language features accepted 3 5 new language features not accepted 3 8 normal C mode extensions 3 10 not accepted 3 8 C language features accepted 3 5 not accepted 3 8 c_plusplus 3 34 4 102 can_instantiate 4 115 catastrophic error 5 3 cfront 4 26 2 1 and 3 0 extensions 3 16 2 1 extensions 3 12 character signed 4 92 unsigned 4 104 class name injection 4 27 compiler diagnostics 5 1 compiler limits 4 117 compiler use 4 1 const string literals 4 29 copy assignment operator 4 23 CP563INC 4 112 CP5GINC 4 112 cross reference 4 111 Index 4 detailed option description compiler 4 16 4 111 development flow 2 4 diagnostics 5 1 brief 4 25 error severity 4 33 5 3 TASKING style 4 100 wrap 4 110 digraph 4 18 directory separator 4 113 do_not_instantiate 4 115 dollar signs 4 36 embedded C 4 38 4 39 entities remove unneeded 4 90 enum overloading 4 40 environment variable CP563INC 4 112 CP56INC 4 112 LM_LICENSE_FILE 1 14 A 6 overview of 2 8 PATH 1 3 1 7 TMPDIR 1 4 1 7 used by tool chain 2 8 error 5 3 error level 5 6 error limit 4 41 error messages B 1 error number 4 34 error output file 4 42 error severity 4 33 5 3 errors FLEXlm license
117. c_only 4 74 isw_diagnostics 4 100 Index 8 typename 4 101 undefine_macro 4 102 unsigned_chars 4 104 use_pch 4 105 using std 4 106 ariadic macros 4 107 version 4 108 wchar_t_keyword 4 109 wrap_diagnostics 4 110 xref 4 111 A 4 94 a 4 94 B 4 53 b 4 26 C 4 28 D 4 31 E 4 88 e 4 41 H 4 99 I 4 56 j 4 75 L 4 61 M 4 32 Mmodel 4 65 n 4 69 o 4 81 P 4 70 r 4 89 s 4 92 T 4 22 t 4 58 U 4 102 u 4 104 V 4 108 v 4 108 w 4 76 X 4 111 x 4 43 detailed description 4 16 overview 4 4 overview in functional order 4 10 priority 4 3 output file 4 50 4 81 Index overview 2 1 P PATH 1 3 1 7 pch mode automatic 3 36 4 82 manual 3 40 4 30 4 105 pragma can_instantiate 3 31 4 115 do_not_instantiate 3 30 4 115 bdrstop 3 36 3 41 4 115 ident 4 116 instantiate 3 30 4 115 no_pch 3 41 4 115 once 4 115 pragmas 4 115 precompiled header 3 36 automatic 3 36 4 82 create 3 40 4 30 directory 3 40 3 41 4 83 file cannot be used 4 85 manual 3 40 messages 4 84 performance 3 42 pragmas 3 41 prefix 3 39 use 3 40 4 105 predefined macros 3 34 predefined symbols 4 102 prelinker 2 5 C 3 prelinker prelk563 3 27 Q qualifier deduction 4 72 Index Index 9 raw listing 4 61 remark 5 3 remarks 4 89 return values 5 6 run time type information 4 91 S setting
118. cense manager that the license file has changed by entering the command located in the flexlm bin directory lmreread On Windows you can also use the graphical FLEXIm Tools Imtools Start Imtools if you have used the defaults this can be done by selecting Start gt Programs gt TASKING FLEXIm gt FLEXlm Tools fill in the current license file location if this field is empty click on the Reread button and then on OK Another option is to reboot your PC The software product and license file are now properly installed Where to go from here The license manager daemon must always be up and running Read section 1 4 4 on how to start the daemon and read section 1 4 5 for information how to set up the license daemon to run automatically 1 12 Chapter 1 If the license manager is running you can now start using the TASKING product d gt See Appendix A Flexible License Manager FLEXlm for detailed information 1 4 4 STARTING THE LICENSE DAEMON The license manager daemon must always be up and running To start the daemon complete the following steps on each license server Windows 1 From the Windows Start menu select Programs gt TASKING FLEXIm gt FLEXIm License Manager The license manager tool appears 2 In the Control tab click on the Start button 3 Close the program by clicking on the OK button UNIX 1 Log in as the operating system administrator usually root 2 Change to the FLE
119. censing activities lmswitchr Switches the report log file lmver Reports the FLEXIm version of a library or binary file lmtools Windows only This is a graphical Windows version of the license administration tools A 10 3 1 LMCKSUM Name Imcksum print license checksums Synopsis Imcksum c icense_file k Description Appendix A The Imcksum program will perform a checksum of a license file This is useful to verify data entry errors at your location Imcksum will print a line by line checksum for the file as well as an overall file checksum The following fields participate in the checksum e hostid on the S e daemon name on the DAI ERVER lines EMON lines e feature name version daemon name expiration date of licenses encription code vendor string and hostid on the FEATURE lines e daemon name and encryption code on FEATURESET lines Options c license_file Use the specified cense_file If no c option is specified Imcksum looks for the environment variable LM_L ICENSE _ FILE in order to find the license file to use If that environment variable is not set lmcksum looks for the file c flexlm license dat Windows or usr local flexlm licenses license dat UNIX k Case sensitive checksum If this option is specified Imcksum will compute the checksum using the exact case of the F
120. cl option only in cplusplus option nonstd using decl can be used only when compiling C bad return type_on main return type of function main must be int Error Messages B 71 0968 0969 0970 0971 0972 0973 0974 0975 0976 0977 0978 0979 template_parameter_has_class_type a template parameter may not have class type default arg_on member decl a default template argument cannot be specified on the declaration of a member of a class template return from ctor function try_block handler a return statement is not allowed in a handler of a function try block of a constructor no ordinary and extended designators ordinary and extended designators cannot be combined in an initializer designation no negative designator range the second subscript must not be smaller than the first cl designators_option_only_in C option designators can be used only when compiling C cl extended designators_ option only in C option extended designators can be used only when compiling C extra_bits ignored declared size for bit field is larger than the size of the bit field type truncated to xxxx bits constructor type mismatch type used as constructor name does not match type type type_with no linkage in var with linkage use of a type with no linkage to declare a variable with linkage type with no linkage in function use of a type with no linka
121. claration must be visible in a direct base class cl_sun_incompatible_with_microsoft Sun mode is incompatible with Microsoft mode cl_sun_incompatible_with_cfront Sun mode is incompatible with cfront mode cl_strict_ansi_incompatible_with_sun strict ANSI mode is incompatible with Sun mode cl_sun_mode_only_in_cplusplus Sun mode is only allowed when compiling C template_template_param_same_name_as_templ_param a template template parameter cannot have the same name as one of its template parameters recursive_def arg instantiation recursive instantiation of default argument dependent type in templ templ param a parameter of a template template parameter cannot depend on the type of another template parameter bad_template_name entity kind entity is not an entity that can be defined destructor_name_must_be_qualified destructor name must be qualified no_typename_in_friend_class_decl friend class name may not be introduced with typename no_ctor or dtor using declaration a using declaration may not name a constructor or destructor B 76 1031 1032 1033 1034 Appendix B friend is nonreal template a gualified friend template declaration must refer to a specific previously declared template bad class template decl invalid specifier in class template declaration simple incompatible_param argument is incompatible with formal parameter asmfunc not al
122. class name or a type name destructor name mismatch destructor name does not match name of class type destructor type mismatch type used as destructor name does not match type type called function redeclared inline entity kind entity redeclared inline after being called bad storage class_on template decl invalid storage class for a template declaration no access to type cfront mode entity kind entity is an inaccessible type allowed for cfront compatibility invalid_instantiation_argument invalid explicit instantiation declaration not_instantiatable_entity entity kind entity is not an entity that can be instantiated compiler_generated_function_cannot_be_instantiated compiler generated entity kind entity cannot be explicitly instantiated inline_function_cannot_be_instantiated inline entity kind entity cannot be explicitly instantiated pure_virtual function cannot be instantiated pure virtual entity kind entity cannot be explicitly instantiated B 36 0489 0490 0491 0493 0494 0495 0496 0497 0498 0500 0501 0502 0503 Appendix B instantiation reguested no definition supplied entity kind entity cannot be instantiated no template definition was supplied instantiation_requested_and_specialized entity kind entity cannot be instantiated it has been explicitly specialized no_constructor
123. conversion to the integral operand of the operator in overload resolution Enable or disable recognition of wchar_t as a keyword Select lifetime for temporaries Enable or disable recognition of alternative tokens Enable or disable minimal inlining of function calls Enable or disable the removal of unneeded entities from the generated intermediate C file using_std no_using_std rtti no tti bool no_bool typename no_typename implicit_typename no_implicit_typename special_subscript_cost no_special_subscript_cost wchar_t_keyword no_wchar_t_keyword long_lifetime_temps short_lifetime_temps alternative_tokens no alternative_tokens inlining no_inlining remove_unneeded entities no_remove_ unneeded entities Template instantiation options Control instantiation of external template entities Enable or disable automatic instantiation of templates Create separate instantiation files Write instantiation files to dir Enable or disable implicit inclusion of source files as a method of finding definitions of template entities to be instantiated instantiate mode t mode auto_instantiation no_auto_instantiation T one_instantiation_per_object instantiation_dir dir implicit_include no_implicit include B Compiler Use Description Option Maximum number of instantiations for a single templ
124. ct mode is specified each instantiation is placed in its own object file One instantiation per object mode is useful when generating libraries that need to include copies of the instances referenced from the library If each instance is not placed in its own object file it may be impossible to link the library with another library containing some of the same instances Without this feature it is necessary to create each individual instantiation object file using the manual instantiation mechanism The automatic instantiation mode is enabled by default It can be turned off by the command line option no auto instantiation If automatic instantiation is turned off the extra information about template entities that could be instantiated in a file is not put into the object file 3 5 2 INSTANTIATION MODES Normally when a file is compiled no template entities are instantiated except those assigned to the file by automatic instantiation The overall instantiation mode can however be changed by a command line option instantiate none Do not automatically create instantiations of any template entities This is the default It is also the usually appropriate mode when automatic instantiation is done instantiate used Instantiate those template entities that were used in the compilation This will include all static data members for which there are template definitions 3 30 Chapter 3 instantiate all Instanti
125. ct type program too large program too large or complicated to compile bad initializer type a value of type type cannot be used to initialize an entity of type rype B 14 0145 0146 0147 0148 0149 0150 0151 0152 0153 0154 0155 0156 0157 Appendix B cannot initialize entity kind entity may not be initialized too many initializer values too many initializer values not _compatible_with_ previous decl declaration is incompatible with entity kind ent ty declared at line xxxx already _initialized entity kind entity has already been initialized bad file scope storage class a global scope declaration may not have this storage class type_cannot_be_param name a type name may not be redeclared as a parameter typedef cannot be param name a typedef name may not be redeclared as a parameter non zero int conv_to_ pointer conversion of nonzero integer to pointer expr_not class expression must have class type expr not struct_or union expression must have struct or union type old fashioned assignment_ operator old fashioned assignment operator old fashioned initializer old fashioned initializer expr_not integral constant expression must be an integral constant expression Error Messages B 15 0158 0159 0160 0161 0163 0164 0165 0166 0167 0168 0169 0170 0171 expr not an lvalue or
126. cted a type identifier not allowed type name is not allowed type definition not allowed type definition is not allowed bad type name redeclaration invalid redeclaration of type name entity declared at line xxxx missing initializer on_const const entity kind entity requires an initializer this_used_incorrectly this may only be used inside a nonstatic member function constant_value_not_known constant value is not known missing type_specifier explicit type is missing Cint assumed missing access_specifier access control not specified xxxx by default not a class or struct name not a class or struct name dupl base class_namc duplicate base class name Error Messages B 21 0264 0265 0266 0267 0268 0269 0274 0276 0277 0278 0279 0280 0281 0282 bad_base_class invalid base class no_access_to_name entity kind entity is inaccessible ambiguous_name entity is ambiguous old_style_parameter_list old style parameter list anachronism declaration_after_statements declaration may not appear after executable statement in block inaccessible_base_class implicit conversion to inaccessible base class type is not allowed improperly_terminated macro call improperly terminated macro invocation id must_be_class_or namespace name name followed by must be a c
127. cted member access checking for other operations i e everything except taking a pointer to member address is done in the normal manner The destructor of a derived class may implicitly call the private destructor of a base class In default mode this is an error but in cfront mode it is reduced to a warning For example class A A class B public A B B B Error except in cfront mode When disambiguation reguires deciding whether something is a parameter declaration or an argument expression the pattern type name or keyword identifier is treated as an argument For example class A A double d A x int d A x2 By default int d is interpreted as a paramcter declaration with redundant parentheses and so x is a function but in cfront compatibility mode int d is an argument and x is a variable The declaration A x2 is also misinterpreted by cfront It should be interpreted as the declaration of an object named x2 but in cfront mode is interpreted as a function style cast of x2 to the type A Similarly the declaration int xyz int Language Implementation 3 19 declares a function named xzy that takes a parameter of type function taking no arguments and returning an int In cfront mode this is interpreted as a declaration of an object that is initialized with the value int which evaluates to zero e A named bit field may have a size of
128. d here partial_override overloaded virtual function entity is only partially overridden in entity kind entity specialization of called inline template function specific definition of inline template function must precede its first use cl invalid error tag invalid error tag cl invalid error number invalid error number param type_ptr_to array_of unknown bound paramcter type involves pointer to array of unknown bound param type ref array_of unknown bound parameter type involves reference to array of unknown bound ptr to member cast to_ptr_to function pointer to member function cast to pointer to function no named fields struct or union declares no named members Error Messages B 45 0619 0620 0622 0623 0624 0625 0626 0629 0630 0631 nonstd unnamed field nonstandard unnamed field nonstd_unnamed member nonstandard unnamed member cl invalid_pch_output file invalid precompiled header output file cl cannot open pch output file cannot open precompiled header output file not_a_type name xxxx is not a type name cl cannot_open_ pch input file cannot open precompiled header input file invalid pch file precompiled header file xxxx is either invalid or not generated by this version of the compiler pch_curr_directory_changed precompiled header file xxxx was not generated in this directory pch heade
129. declares the overloading of two functions named f int f int int f x char x return x Note that in C this code is legal but has a different meaning a tentative declaration of f is followed by its definition 3 10 3 3 4 Chapter 3 When nonconst ref anachronism is enabled a reference to a non const class can be bound to a class rvalue of the same type or a derived type thereof struct A A int A operator A amp A operator const A amp main 1 A 1 A 2 Allowed as anachronism l O A b EXTENSIONS ACCEPTED IN NORMAL C MODE The following extensions are accepted in all modes except when strict ANSI violations are diagnosed as errors A friend declaration for a class may omit the class keyword class A friend B Should be friend class B Constants of scalar type may be defined within classes class A const int size 10 int a size In the declaration of a class member a gualified name may be used struct A int A f Should be int f The preprocessing symbol c_plusplus is defined in addition to the standard _ cplusplus A pointer to a constant type can be deleted Language Implementation 3 11 An assignment operator declared in a derived class with a parameter type matching one of its base classes is treated as a default assignment operator that is such a declaration blocks the implicit generation of a copy assignment
130. diagnostic output in which the original source line is not displayed and the error message text is not wrapped when too long to fit on a single line The command line option display_error_number may be used to reguest that the error number be included in the diagnostic message When displayed the error number also indicates whether the error may have its severity overridden on the command line with one of the diag_severity options If the severity may be overridden the error number will include the suffix D for discretionary otherwise no suffix will be present Test_name cc line 7 error 64 D declaration does not declare anything struct Test_name cc line 9 error 77 this declaration has no storage class or type specifier XXXXX Because an error is determined to be discretionary based on the error severity associated with a specific context a given error may be discretionary in some cases and not in others For some messages a list of entities is useful they are listed following the initial error message test cc line 4 error more than one instance of overloaded function f matches the argument list function f int function f float argument types are double L 5 In some cases some additional context information is provided specifically such context information is useful when the C compiler issues a diagnostic while doing a template instantiation or while
131. ds Enable or disable support for the explicit specifier on constructor declarations Enable or disable inline function with external C linkage M m s r xly l p L M 24 1624 16 6 n x y l p L cfront_2 1 b cfront_3 0 dollar signed_chars s unsigned_chars u long_preserving rules no_long_preserving_rules const_string_literals no_const_string_literals exceptions no_exceptions X embedded_c embedded no_embedded enum_overloading no_enum_ overloading explicit no_explicit extern_inline no_extern_inline Compiler Use Description Option Enable or disable implicit type conversion between external C and C function pointers Suppress type info variables in generated C Suppress definition of virtual function tables Force definition of virtual function tables Enable or disable anachronisms Enable or disable the anachronism of accepting a copy assignment operator with a base class as a default for the derived class Enable or disable the anachronism of allowing a reference to nonconst to bind to a class rvalue of the right type Use or do not use a non standard template argument deduction method Allow or disallow unqualified name in non member using declaration Perform argument dependent lookup of unqualified function names Add class name to the scope of the class Control the visi
132. e case label value has already appeared in this switch default_label appears more_than_ once default label has already appeared in this switch exp_ lparen expected a expr not an lvalue expression must be an lvalue exp_ statement expected a statement loop not reachable loop is not reachable from preceding code block scope_function must_be_extern a block scope function may only have extern storage class exp_lbrace expected a expr_not_ptr_to_class expression must have pointer to class type Error Messages B 13 0132 0133 0134 0135 0136 0137 0138 0139 0140 0141 0142 0143 0144 expr_not_ ptr to struct_or union expression must have pointer to struct or union type exp member name expected a member name exp field name expected a field name not a member entity kind entity has no member xxxx not a field entity kind entity has no field xxxx expr not a modifiable lvalue expression must be a modifiable lvalue address_of register variable taking the address of a register variable is not allowed address_of bit field taking the address of a bit field is not allowed too_many_arguments too many arguments in function call all proto_params_must_be_named unnamed prototyped parameters not allowed when body is present expr_not pointer to object expression must have pointer to obje
133. e struct A void f int static void sf int typedef void A T3 int nonstd typedef decl typedef void T2 int std typedef typedef void A T int nonstd typedef decl T pmf amp A f nonstd ptr to member decl A T2 pf A sf std ptr to static mem decl A T3 pmf2 amp A f nonstd ptr to member decl where T is construed to name a routine type for a non static member function of class A that takes an int argument and returns void the use of such types is restricted to nonstandard pointer to member declarations The declarations of T and pmf in combination are equivalent to a single standard pointer to member declaration void A pmf int amp A f A nonstandard pointer to member declaration that appears outside of a class declaration such as the declaration of T is normally invalid and would cause an error to be issued However for declarations that appear within a class declaration such as A T3 this feature changes the meaning of a valid declaration cfront version 2 1 accepts declarations such as T even when A is an incomplete type so this case is also excepted e Protected member access checking is not done when the address of a protected member is taken For example 3 18 Chapter 3 class B protected int i class D public B void mf void D mf int B pmil amp B i error OK in cfront mode int D pmi2 amp D i OK amp Prote
134. e Implementation 3 21 typedef void PF extern C typedef void PCF void PF void f PCF PF and PCF are considered identical and void f PCF is treated as a compatible redeclaration of By contrast in standard C PF and PCF are different and incompatible types PF is a pointer to an extern C function whereas PCF is a pointer to an extern rc function and the two declarations of f create an overload set e Functions declared inline have internal linkage e enum types are regarded as integral types e An uninitialized const object of non POD class type is allowed even if its default constructor is implicitly declared struct A virtual void f int i const A a e A function parameter type is allowed to involve a pointer or reference to array of unknown bounds e If the user declares an operator function in a class but not one that can serve as the default operator and bitwise assignment could be done on the class a default operator is not generated only the user written operator functions are considered for assignments and therefore bitwise assignment is not done e A member function declaration whose return type is omitted and thus implicitly int and whose name is found to be that of a type is accepted if it takes no parameters typedef int I struct S 1 Accepted in Cfront mode declares int S I I int Not accepted F 3 22 Chapter 3
135. e execution of Imreread See the p option in Section 3 4 lmgrd for details about securing access to Imreread Imreread uses the license file from the command line or the default file if none specified only to find the license daemon to send it the command to reread the license file The license daemon will always reread the file that it loaded from the original path If you need to change the path to the license file read by the license daemon then you must shut down the daemon and restart it with that new license file path You cannot use Imreread if the SERVER node names or port numbers have been changed in the license file In this case you must shut down the daemon and restart it in order for those changes to take effect Imreread does not change any option information specified in an options file If the new license file specifies a different options file that information is ignored If you need to reread the options file you must shut down Imdown the daemon and restart it Options c license_file Use the specified icense_file If no c option is specified Imreread looks for the environment variable LM_LICENSE_FILE in order to find the license file to use If that environment variable is not set lmreread looks for the file 1icense dat in the default location d gt Imdown A 18 Appendix A 3 8 LMSTAT Name Imstat report status on license manager daemons and feature usage Syn
136. e format as the TASKING C compiler messages Example cp563 mno_tsw diagnostics test cc d gt brief_diagnostics Chapter Compiler Diagnostics and Appendix Error Messages Compiler Use typename Option typename no_typename Default typename Description Enable or disable recognition of the typename keyword Example cp563 no_typename test cc d gt implicit typename 4 101 4 102 Chapter 4 undefine macro U Option Uname undefine macro name Arguments The name macro you want to undefine Description Remove any initial definition of identifier name as in undef unless it is a predefined ANSI standard macro ANSI specifies the following predefined symbols to exist which cannot be removed _ FILE current source filename _ LINE_ current source line number int type _TIME_ hh mm ss _ DATE Mmm dd yyyy _ SIDC _ level of ANSI standard This macro is set to 1 when the option to disable language extensions A is effective Whenever language extensions are excepted _ STDC _ is set to 0 zero _ cplusplus is defined when compiling a C program When cp563 is invoked also the following predefined symbols exist c_plusplus is defined in addition to the standard __ cplusplus _ SIGNED CHARS _ is defined when plain char is signed _WCHAR T is defined when wchar_t is a keyword _BOOL is defined when bool is a keyword _ ARRAY_OPERATORS is
137. e function template entity matches type type non integral operation in templ arg non integral operation not allowed in nontype template argument cl embedded cplusplus_ option only in cplusplus option embedded_c can be used only when compiling C templates_in_embedded_cplusplus Embedded C does not support templates exceptions_in_embedded_cplusplus Embedded C does not support exception handling namespaces_in_embedded_cplusplus Embedded C does not support namespaces rtti in embedded cplusplus Embedded C does not support run time type information new_cast in embedded cplusplus Embedded C does not support the new cast syntax using decl in embedded cplusplus Embedded C does not support using declarations mutable_in_embedded_cplusplus Embedded C does not support mutable multiple inheritance in embedded cplusplus Embedded C does not support multiple or virtual inheritance Error Messages B 65 0883 0884 0885 0886 0887 0888 0889 0890 0891 0892 0893 0894 0896 cl_invalid_microsoft_version invalid Microsoft version number inheritance_kind_already_set pointer to member representation has already been set for entity kind entity bad constructor type type cannot be used to designate constructor for type bad_suffix invalid suffix on integral constant uuidof reguires uuid class type operand
138. e generated intermediate C file Enable or disable support for RTTI run time type information Treat all char variables as signed Enable or disable a special nonstandard weighting of the conversion to the integral operand of the operator in overload resolution Strict ANSI C Issue errors on non ANSI features Strict ANSI C Issue warnings on non ANSI features Suppress type info variables in generated C Suppress definition of virtual function tables Look in directory dir for system include files Generate compilation timing information Preprocess only Generate list of included files 4 9 4 10 Chapter 4 Option Description tsw_diagnostics no_tsw_diagnostics typename no_typename undefine_macro macro Umacro unsigned_chars u use_pch file using_std no_using_std variadic_macros no_variadic_macros version V V wchar_t_keyword no_wchar_t_keyword wrap diagnostics no_wrap diagnostics xref xfile X xfile Enable or disable TASKING style diagnostic messages Enable or disable recognition of typename Remove preprocessor macro Treat all char variables as unsigned Use a precompiled header file of the specified name Enable or disable implicit use of the std namespace when standard header files are included Allow or disallow macros with a variable number of arguments Display version header o
139. e message by using the command line option no_pch_messages When the pch_verbose option is used the C compiler will display a message for each precompiled header file that is considered that cannot be used giving the reason that it cannot be used In automatic mode i e when pch is used the C compiler will deem a precompiled header file obsolete and delete it under the following circumstances e if the precompiled header file is based on at least one out of date header file but is otherwise applicable for the current compilation or e if the precompiled header file has the same base name as the source file being compiled e g xxx pch and xxx cc but is not applicable for the current compilation e g because of different command line options This handles some common cases other PCH file clean up must be dealt with by other means e g by the user Support for precompiled header processing is not available when multiple source files are specified in a single compilation an error will be issued and the compilation aborted if the command line includes a request for precompiled header processing and specifies more than one primary source file 3 7 2 MANUAL PRECOMPILED HEADER PROCESSING Command line option create_pch i le name specifies that a precompiled header file of the specified name should be created Command line option use_pch i e name specifies that the indicated precompiled header file should be u
140. e option name as are needed to uniguely identify an option name for example the wchar_t_keyword option may be abbreviated as wc Note that this is not supported by the control program If an option reguires an argument the argument may be separated from the keyword by white space or the keyword may be immediately followed by option When the second form is used there may not be any white space on either side of the eguals sign The priority of the options is left to right when two options conflict the first most left one takes effect The D and U options are not considered conflicting options so they are processed left to right for each source file You can overrule the default output file name with the gen_c file name option A summary of the options is given below The next section describes the options in more detail 4 4 Chapter 4 Option Description alternative_tokens no_alternative_tokens anachronisms no_anachronisms arg_dep_lookup no_arg_dep_lookup array_new and delete no_array_new and delete auto_instantiation no auto instantiation T base assign_op is default no_base assign_ op is default bool no_bool brief_diagnostics no_brief_diagnostics cfront_2 1 b cfront_3 0 class_name_injection no_class_name_injection comments C const_string_literals no_const_string_literals create_pch file Displ
141. e user stack DSP563xx only To circumvent hardware stack extension silicon problems on the DSP563xx the compiler can avoid using the hardware stack for function calls by saving the return address on the user stack at least one argument must be specified cp56 only cp56 only cp56 only cp563 only cp563 only cp563 only cp563 only 4 66 Chapter 4 The use of default P data memory Mp is not recommended because it leads to much more object code It is meant for applications with special hardware layouts only Example cp56 Mr test cc cp563 M16 test cc Compiler Use namespaces Option namespaces no_namespaces Default namespaces Description Enable or disable support for namespaces Example cp563 no namespaces test cc d gt using std Section Namespace Support in chapter Language Implementation 4 67 4 68 Chapter 4 new for init old for _init Option new for init old for init Default new for init Description Control the scope of a declaration in a for init statement The old cfront compatible scoping rules mean the declaration is in the scope to which the for statement itself belongs the new standard conforming rules in effect wrap the entire for statement in its own implicitly generated scope Example cp563 old for init test cc Compiler Use no_code gen n Option n no
142. e_injection 4 27 nonconst_ref_anacbronism 4 71 no_code_gen 4 69 nonstd_qualifier_deduction 4 72 no_const_string literals 4 29 nonstd_using_decl 4 73 no_distinct_template_signatures old for init 4 68 4 35 old_line_commands 4 77 no_embedded 4 38 old_specializations 4 78 no_enum_overloading 4 40 old_style_preprocessing 4 79 no_exceptions 4 43 one_instantiation_per_ object 4 80 no_explicit 4 44 oulpul 4 81 no_extended_variadic_macros pcb 4 82 4 45 pch_dir 4 83 no_extern_inline 4 46 pch messages 4 84 no_for_init_diff warning 4 47 pch_verbose 4 85 no_friend_injection 4 49 pending_ instantiations 4 86 no_guiding_decls 4 51 preinclude 4 87 no_implicit_extern_c_type_convers preprocess 4 88 ion 4 52 remarks 4 89 no_implicit_include 4 53 remove_unneeded_entities 4 90 no_implicit_typename 4 54 riti 4 91 no_inlining 4 57 short_lifetime_temps 4 03 no_line_commands 4 70 signed_chars 4 92 no_long_preserving_rules 4 64 special_subscript_cost 4 93 no_namespdces 4 67 sirict 4 94 no_nonconst_ref_anachronism strict_warnings 4 94 4 71 suppress_typeinfo_vars 4 95 no_nonstd_qualifier_deduction suppress_vtbl 4 96 4 72 sys_include 4 97 no_nonstd_using_decl 4 73 timing 4 98 no_old_specializations 4 78 trace_includes 4 99 no_prepro
143. eaders section in chapter Language Implementation If use_pch or create_pch manual PCH mode appears on the command line following this option its effect is erased Example cp563 pch test cc d gt use_pch create_pch Section Precompiled Headers in chapter Language Implementation Compiler Use 4 83 pch_dir Option pch_dir dir name Arguments The name of the directory to search for and or create a precompiled header file Description Specify the directory in which to search for and or create a precompiled header file This option may be used with automatic PCH mode pch or manual PCH mode create_pch or use_pch Example To use the directory usr include pch to automatically create precompiled header files enter cp563 pch_dir usr include pch pch test cc d gt pch use_pch create_pch Section Precompiled Headers in chapter Language Implementation 4 84 Chapter 4 pch messages Option pch messages no_pch messages Default pch messages Description Enable or disable the display of a message indicating that a precompiled header file was created or used in the current compilation Example cp563 create_pch test pch pch messages test cc test cc creating precompiled header file test pch d gt pch use_pch create_pch Section Precompiled Headers in chapter Language Implementation Compiler Use 4 85 pch_verbose Option
144. ecompiled header processing is enabled This means the C compiler will automatically look for a qualifying precompiled header file to read in and or will create one for use on a subsequent compilation The PCH file will contain a snapshot of all the code preceding the header stop point The header stop point is typically the first token in the primary source file that does not belong to a preprocessing directive but it can also be specified directly by pragma hdrstop see below if that comes first For example finclude xxx h finclude yyy h int i The header stop point is int the first non preprocessor token and the PCH file will contain a snapshot reflecting the inclusion of xxx h and yyy h If the first non preprocessor token or the pragma hdrstop appears within a if block the header stop point is the outermost enclosing if To illustrate heres a more complicated example Language Implementation include xxx h ifndef YYY_H define YYY_H 1 include yyy h endif if TEST int 4 endif Here the first token that does not belong to a preprocessing directive is again int but the header stop point is the start of the if block containing it The PCH file will reflect the inclusion of xxx h and conditionally the definition of YYY_H and inclusion of yyy h it will not contain the state produced by if TEST A PCH file will be produced only if the header stop point and the code preceding it m
145. eduction can be used only when compiling C bad_declspec_property incorrect property specification correct form is __ declspec property getznamel putzname2 dupl get or put property has already been specified declspec_property_not allowed __ declspec property is not allowed on this declaration no get property member is declared with __ declspec property but no get function was specified get property_function missing the _ declspec property get function xxxx is missing no_put property member is declared with __ declspec property but no put function was specified Error Messages B 67 0911 0912 0913 0914 0915 0916 0917 0918 0919 0920 0921 0922 put_property_function_missing the __declspec property put function xxxx is missing dual lookup ambiguous name ambiguous class member reference entity kind entity declared at line xxxx used in preference to entity kind entity declared at line xxxx bad allocate segname missing or invalid segment name in __ declspec allocate declspec allocate_not allowed __ declspec allocate is not allowed on this declaration dupl allocate_segname a segment name has already been specified pm virtual base from derived class cannot convert pointer to member of derived class type to pointer to member of base class type base class is virtual c
146. egative shift_count_too_large shift count is too large useless_decl declaration does not declare anything exp_semicolon 99 expected a enum value out of int range enumeration value is out of int range exp_rbrace expected a integer sign change integer conversion resulted in a change of sign integer truncated integer conversion resulted in truncation incomplete type not allowed incomplete type is not allowed sizeof bit field operand of sizeof may not be a bit field bad indirection_operand operand of must be a pointer Error Messages B 9 0076 0077 0078 0079 0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 empty_macro_argument argument to macro is empty missing decl_specifiers this declaration has no storage class or type specifier initializer in param a paramcter declaration may not have an initializer exp_ type specifier expected a type specifier storage class not allowed a storage class may not be specified here mult storage classes more than one storage class may not be specified storage class not first storage class is not first dupl type gualifier type gualifier specified more than once bad combination of type specifiers invalid combination of type specifiers bad param storage class invalid storage class for a parameter bad function storage class invalid storage class for a fu
147. emo cc UNIX cp563 I include demo cc 3 Check if the environment variable CP563INC exists If it does exist use the contents as a directory specifier for include files You can specify more than one directory in the environment variable CP563INC by using a separator character Instead of using I as in the example above you can specify the same directory using CP563INC use CP5GINC for the DSP5600x family Compiler Use 4 113 PC set CP563INC include cp563 demo cc UNIX if using the Bourne shell sh CP563INC include export CP563INC cp563 demo cc or if using the C shell csh setenv CP563INC include cp563 demo cc 4 When an include file is not found with the rules mentioned above the compiler tries the subdirectories include cpp and include one directory higher than the directory containing the cp563 binary For example PC cp563 exe is installed in the directory C C563 BIN The directories searched for the include file are C C563 INCLUDE CPP and C C563 INCLUD Fl UNIX cp563 is installed in the directory usr local c563 bin The directories searched for the include file are usr local c563 include cpp and usr local c563 include The compiler determines run time which directory the binary is executed from to find this include directory 5 If the include file is still not found the directories specified in the sys include option are searched A directory n
148. eread complains about not being able to connect to the license server then follow the procedure described in the next section for the error message Cannot read license file data from server The only difference with the current situation is that not the product but a license management utility shows a connect problem FLEXlm license error Cannot read license file data from server This indicates that the program could not connect to the license server daemon This can have a number of causes If the program did not immediately print the error message but waited for about 30 seconds this can vary then probably the license server host is down or unreachable If the program responded immediately with the error message then check the following if the LM_LICENSE_FILE variable has been set to the format number amp bost is the number correct It should match the fourth field of a SERVER line in the license file on the license server host Also the host name on that SERVER line should be the same as the host name set in the LM_LICENSE_FILE variable Correct LM_LICENSE_FILE if necessary In any case one should verify if the license server daemon is running Type the following command on the host where the license server daemon Imgrd is supposed to run On SunOS 4 x ps wwax grep lmgrd grep v grep On HP UX or SunOS 5 x Solaris 2 x ps ef grep lmgrd grep v grep If the command does not produce any ou
149. ers on the object are preserved in the element type of the resultant array e An identifier in a function is allowed to have the same name as a parameter of the function A warning is issued e An expression of type void may be supplied on the return statement in a function with a void return type A warning is issued e Cfront has a bug that causes a global identifier to be found when a member of a class or one of its base classes should actually be found This bug is emulated in cfront compatibility mode A warning is issued when because of this feature a nonstandard lookup is performed The following conditions must be satisfied for the nonstandard lookup to be performed A member in a base class must have the same name as an identifier at the global scope The member may be a function static data member or non static data member Member type names do not apply because a nested type will be promoted to the global scope by cfront which disallows a later declaration of a type with the same name at the global scope The declaration of the global scope name must occur between the declaration of the derived class and the declaration of an out of line constructor or destructor The global scope name must be a type name No other member function definition even one for an unrelated class may appear between the destructor and the offending reference This has the effect that the nonstandard lookup applies to only one class at a
150. erver lost all connections This message is logged when all the connections to a server are lost This probably indicates a network problem NO DAEMON lines exiting The license daemon logs this message if there are no DAEMON lines in the license file Since there are no vendor daemons to start there is nothing to do NO DAEMON line for name A vendor daemon logs this error if it cannot find its own DAEMON name in the license file Flexible License Manager FLEXIm A 31 4 3 DAEMON SOFTWARE ERROR MESSAGES accept message An error was detected in the accept system call ATTEMPT TO START VENDOR DAEMON xxx with NO MASTER A vendor daemon was started with no master selected This is an internal consistency error in the daemons BAD PID message from nnn pid xxx msg A top level vendor daemon received an invalid PID message from one of its children daemon number xxx BAD SCONNECT message message An invalid server connect message was received Cannot create pipes for server communication The pipe call failed Can t allocate server table space A malloc error Check swap space Connection to node TIMED OUT The daemon could not connect to node Error sending PID to master server The vendor server could not send its PID to the top level server in the hierarchy Illegal connection request to DAEMON A connection request was made to DAEMON but this vendor daemon is not DAEMON
151. es and the options are Display an explanation of options at stdout V Display version information at stderr c C Use c as symbol prefix character instead of the default underscore D Do not assign instantiation to non local object files Instantiations may only be assigned to object files in the current directory i Ignore invalid input lines lxxx Specify a library e g Istd C 4 L L directory m n N filename q r R number s number T cpu u vV Appendix C Skip system library search Specify an additional search path for system libraries Do not demangle identifier names that are displayed Update the instantiation list files ii but do not recompile the source files If a file from a non local directory needs to be recompiled do the compilation in the current directory An updated list of object files and library names is written to the file specified by filename so that the driver program can tell that alternate versions of some of the object files should be used Quiet mode Turns off verbose mode Do not stop after the maximum number of iterations The instantiation process is iterative a recompilation may bring up new template entities that need to be instantiated which requires another recompilation etc Some recursive templates can cause iteration that never terminates because each iteration introduces another new entity that was not previously there By default
152. es for which code should be generated based on the template definition none Instantiate no template entities This is the default used Instantiate only the template entities that are used in this compilation all Instantiate all template entities whether or not they are used local Instantiate only the template entities that are used in this compilation and force those entities to be local to this compilation Compiler Use 4 59 Example To specify to instantiate only the template entities that are used in this compilation enter cp563 tused test cc d gt auto instantiation T Section Template Imstantiation in chapter Language Implementation 4 60 Chapter 4 instantiation_dir Option instantiation_dir directory Arguments The name of the directory to write instantiation files to Description You can use this option in combination with option one_instantiation_per_object to specify a directory into which the generated object files should be put Example To create separate instantiation files in directory proj template enter cp563 one_instantiation_per_object instantiation_dir proj template test cc d gt Section Template Instantiation in chapter Language Implementation one_instantiation_per_object Compiler Use 4 61 list L Option Lifile list file Arguments The name of the list file Description Generate raw listing information in the
153. escribed in detail in the section Precompiled Headers in chapter Language Implementation once When placed at the beginning of a header file indicates that the file is written in such a way that including it several times has the same effect as including it once Thus if the C compiler sees pragma once at the start of a header file it will skip over it if the file is included again A typical idiom is to place an ifndef guard around the body of the file with a define of the guard variable after the ifndef 4 116 ident Chapter 4 pragma once optional ifndef FILE_H define FILE_H body of the header file endif The pragma once is marked as optional in this example because the C compiler recognizes the ifndef idiom and does the optimization even in its absence pragma once is accepted for compatibility with other compilers and to allow the programmer to use other guard code idioms This pragma is given in the form pragma ident siring Or ident siring Compiler Use 4 117 4 4 COMPILER LIMITS The ANSI C standard 1 2 2 4 defines a number of translation limits which a C compiler must support to conform to the standard The standard states that a compiler implementation should be able to translate and execute a program that contains at least one instance of every one of the limits listed below The C compiler s actual limits are given within parentheses Mo
154. esult of a operation is an extension char p x abc def Except in strict ANSI mode default arguments may be specified for function parameters other than those of a top level function declaration e g they are accepted on typedef declarations and on pointer to function and pointer to member function declarations 3 12 3 3 5 Chapter 3 EXTENSIONS ACCEPTED IN CFRONT 2 1 COMPATIBILITY MODE The following extensions are accepted in cfront 2 1 compatibility mode in addition to the extensions listed in the 2 1 3 0 section following i e these are things that were corrected in the 3 0 release of cfront The dependent statement of an if while do while or for is not considered to define a scope The dependent statement may not be a declaration Any objects constructed within the dependent statement are destroyed at exit from the dependent statement Implicit conversion from integral types to enumeration types is allowed A non const member function may be called for a const object A warning is issued A const void value may be implicitly converted to a void value e g when passed as an argument When in determining the level of argument match for overloading a reference paramcter is initialized from an argument that reguires a non class standard conversion the conversion counts as a user defined conversion When a built in operator is considered alongside overloaded opera
155. etic operation not allowed in nontype template argument local type in nonlocal var use of a local type to declare a nonlocal variable local type in function use of a local type to declare a function branch past initialization transfer of control bypasses initialization of branch into handler transfer of control into an exception handler used before set entity kind entity is used before its value is set B 40 0550 0551 0552 0553 0554 0555 0556 0558 0559 0560 0561 0562 0563 Appendix B set_but_not used entity kind entity was set but never used bad scope for definition entity kind entity cannot be defined in the current scope exception_specification_not_allowed exception specification is not allowed template and instance linkage conflict external internal linkage conflict for entity kind entity declared at line xxxx conversion function not usable entity kind entity will not be called for implicit or explicit conversions tag_kind_incompatible_with_template_parameter tag kind of xxxx is incompatible with template parameter of type type template_operator_new function template for operator new size_t is not allowed bad member type in_ptr_to member pointer to member of type type is not allowed ellipsis_on_operator function ellipsis is not allowed in operator function parameter list unimplemented_keyword
156. ey information will be sent to you with the software product 1 4 2 INSTALLING NODE LOCKED LICENSES Keep your License Information Form ready If you do not have such a form read section 1 4 1 Obtaining License Information before continuing Step 1 Install the TASKING software product following the installation procedure described in section 1 2 Installation for Windows Step 2 Create a file called License dat in the c flex1m directory using an ASCH editor and insert the license information contained in the License Information Form in this file This file is called the license file If the directory c flex1m does not exist create the directory amp If you wish to install the license file in a different directory see section 1 4 6 Modifying tbe License File Location amp If you already have a license file add the license information to the existing license file If the license file already contains any SERVER lines you must use another license file See section 1 4 6 Modifying the License File Location for additional information The software product and license file are now properly installed d gt See Appendix A Flexible License Manager FLEXIm for more information 1 10 7 Chapter 1 1 4 3 INSTALLING FLOATING LICENSES Keep your License Information Form ready If you do not have such a form read section 1 4 1 Obtaining License Information before continuing Step 1 I
157. f end of scope end of switch clause or the next label Short is standard C and long is what cfront uses the cfront compatibility modes select long by default Example cp563 long_lifetime_temps test cc 4 64 Chapter 4 long_preserving_rules Option long_preserving_rules no long preserving rules Default no long preserving rules Description Enable or disable the K amp R usual arithmetic conversion rules with respect to long This means the rules of K amp R I Appendix A 6 6 The significant difference is in the handling of long op unsigned int when int and long are the same size The ANSI ISO rules say the result is unsigned long but K amp R I says the result is long unsigned long did not exist in K amp R I The default is the ANSI ISO rule Example cp563 long_preserving_ rules test cc Compiler Use Mmodel Option M model n mem L Arguments The memory model to be used where model is one of S static m mixed r reentrant 16 16 bit 1624 16 24 bit 24 24 bit 6 DSP566xx and mem is one of x X memory y Y memory 1 L memory p P memory other arguments n do not use hardware stack extension cp563 only L stack not in L memory default X or Y only Default Mmx for cp56 M24x for cp563 Description Select memory model and default memory space to be used With Mn cp563 only the compiler selects pushing and popping the return address on th
158. file whose name was specified without a suffix If a null suffix is to be allowed it must be included in the suffix list The default suffix list is no extension h and hpp Example To allow only the suffixes h and hpp as include file extensions enter cp563 incl_suffixes h hpp test cc d gt Section 4 2 Include Files 4 56 Chapter 4 include_directory I Option Idirectory include_directory directory Arguments The name of the directory to search for include file s Description Change the algorithm for searching include files whose names do not have an absolute pathname to look in directory Example cp563 I proj include test cc d gt Section 4 2 Include Files sys_include Compiler Use inlining Option inlining no_inlining Default inlining Description Enable or disable minimal inlining of function calls Example To disable function call inlining enter cp563 no_inlining test cc 4 57 4 58 Chapter 4 instantiate t Option tmode instantiate mode Pragma instantiate mode Arguments The instantiation mode which can be one of none used all local Default tnone Description Control instantiation of external template entities External template entities are external that is noninline and nonstatic template functions and template static data members The instantiation mode determines the template entiti
159. fit on a single line Example cp563 no_brief_diagnostics test cc d gt wrap diagnostics Chapter Compiler Diagnostics and Appendix Error Messages 4 26 Chapter 4 cfront_version b Option b cfront_2 1 cfront_3 0 Default Normal C mode Description b is equivalent to cfront_2 1 cfront_2 1 or cfront_3 0 enable compilation of C with compatibility with cfront version 2 1 or 3 0 respectively This causes the compiler to accept language constructs that while not part of the C language definition are accepted by the AT amp T C Language System cfront release 2 1 or 3 0 respectively These options also enable acceptance of anachronisms Example To compile C compatible with cfront version 3 0 enter cp563 cfront_3 0 test cc d gt anachronisms Section Extensions Accepted in Cfront 2 1 and 3 0 Compatibility Mode in chapter Language Implementation Compiler Use 4 27 class_name_injection Option class_name_injection no_class_name injection Default class_name_injection Description Controls whether the name of a class is injected into the scope of the class as required by the standard or is not injected as was true in earlier versions of the C language Example cp563 no_class_name_injection test cc 4 28 Chapter 4 comments C Option C comments Description Keep comments in the preprocessed output This should be spec
160. functions interrupt functions You can specify interrupt functions directly through interrupt vectors in the C language _fast_interrupt _long_interrupt keyword inline C functions You can specify to inline a function body instead of calling the function by using the _inline keyword special calling conventions With the _compatible keyword you can specify that a function must have the same calling convention as the Motorola C compiler The _callee_save keyword can be used to indicate that a function must save all registers instead of leaving this to the caller circular buffers cp563 supports the type modifier _circ for circular data structures and pointers intrinsic functions A number of pre declared functions can be used to generate inline assembly code at the location of the intrinsic built in function call This avoids the overhead which is normally used to do parameter passing and context saving before executing the called function pragmas The C compiler supports the same pragmas as the C compiler Pragmas give directions to the code generator of the compiler All of the language extensions mentioned above are described in detail in the C Cross Gompiler User s Guide Language Implementation 3 5 3 3 C DIALECT ACCEPTED The C compiler accepts the C language as defined by the ISO IEC 14882 1998 standard with the exceptions listed below The C compiler also has a cfront compatibility mode which du
161. ge to declare a function return type_on constructor return type may not be specified on a constructor B 72 0980 0981 0982 0983 0984 0985 0986 0987 0988 0989 0990 0991 0992 Appendix B return_type_on_destructor return type may not be specified on a destructor malformed_universal_character incorrectly formed universal character name invalid UCN universal character name specifies an invalid character UCN_names_basic_char a universal character name cannot designate a character in the basic character set invalid_identifier UCN this universal character is not allowed in an identifier VA_ARGS not allowed the identifier _ VA_ARGS__ can only appear in the replacement lists of variadic macros friend gualification ignored the gualifier on this friend declaration is ignored no range designator with dynamic init array range designators cannot be applied to dynamic initializers property_name_ not allowed property name cannot appear here inline_gualifier ignored inline used as a function qualifier is ignored cl compound literals option only_in_C option compound literals can be used only when compiling C vla_not allowed a variable length array type is not allowed bad integral compound literal a compound literal is not allowed in an integral constant expression Error Messages B 73 0993 0994 0995 0996 0997 0998 0999
162. gle source description of the template for a stack the compiler can create instantiations of the template for each of the types required The instantiation of a class template is always done as soon as it is needed in a compilation However the instantiations of template functions member functions of template classes and static data members of template classes hereafter referred to as template entities are not necessarily done immediately for several reasons e One would like to end up with only one copy of each instantiated entity across all the object files that make up a program This of course applies to entities with external linkage e The language allows one to write a specialization of a template entity i e a specific version to be used in place of a version generated from the template for a specific data type One could for example write a version of Stack lt int gt or of just Stack lt int gt push that replaces the template generated version often such a specialization provides a more efficient representation for a particular data type Since the compiler cannot know when compiling a reference to a template entity if a specialization for that entity will be provided in another compilation it cannot do the instantiation automatically in any source file that references it e The language also dictates that template functions that are not referenced should not be compiled that in fact such functions might conta
163. h the package the daemon log file and its contents and the use of daemon options files to customize your use of the TASKING toolchain 2 LICENSE ADMINISTRATION 2 1 OVERVIEW The Flexible License Manager FLEXIm is a set of utilities that when incorporated into software such as the TASKING toolchain provides for managing access to the software The following terms are used to describe FLEXIm concepts and software components feature A feature could be any of the following e A TASKING software product e A software product from another vendor license The right to use a feature FLEXIm restricts licenses for features by counting the number of licenses for features in use when new requests are made by the application software client A TASKING application program daemon A process that serves clients Sometimes referred to as a server vendor daemon The daemon that dispenses licenses for the requested features This daemon is built by an application s vendor and contains the vendor s personal encryption code Tasking is the vendor daemon for the TASKING software Appendix A license daemon server node license file The daemon process that sends client processes to the correct vendor daemon on the correct machine The same license daemon is used by all applications from all vendors as this daemon neither performs encryption nor dispenses licenses The license daemon processes no user requests on i
164. hout affecting any license However it must never be changed while the license server daemon is running If it has been changed change it back to the original value If you do not know the original number anymore restart the license server daemon after typing the following command on the license server host kill PID where PID is the process id of Imgrd Flexible License Manager FLEXIm A 37 6 FREQUENTLY ASKED QUESTIONS FAQS 6 1_ LICENSE FILE QUESTIONS I ve received FLEXlm license files from 2 different companies Do I have to combine them You don t have to combine license files Each license file that has any counted lines the number of licenses field is gt 0 requires a server It s perfectly OK to have any number of separate license files with different lmgrd server processes supporting each file Moreover since lmgrd is a lightweight process for sites without system administrators this is often the simplest and therefore recommended way to proceed With v6 Imgrd Imdown Imreread you can stop reread restart a single vendor daemon of any FLEXIm version This makes combining licenses more attractive than previously Also if the application is v6 using dir lic for license file management behaves like combining licenses without physically combining them When is it recommended to combine license files Many system administrators especially for larger sites prefer
165. ice this is hard for a compiler to do and different compilers use different automatic instantiation schemes with different strengths and weaknesses e AT amp T USL Novell s cfront product saves information about each file it compiles in a special directory called ptrepository It instantiates nothing during normal compilations At link time it looks for entities that are referenced but not defined and whose mangled names indicate that they are template entities For each such entity it consults the ptrepository information to find the file containing the source for the entity and it does a compilation of the source to generate an object file containing object code for that entity This object code for instantiated objects is then combined with the normal object code in the link step 3 26 Chapter 3 If you are using cfront you must follow a particular coding convention all templates must be declared in h files and for each such file there must be a corresponding cc file containing the associated definitions The compiler is never told about the cc files explicitly one does not for example compile them in the normal way The link step looks for them when and if it needs them and does so by taking the h filename and replacing its suffix 2 This scheme has the disadvantage that it does a separate compilation for each instantiated function or at best one compilation for all the member functions of one class Even though
166. ified after either preprocess or no_line_commands it does not of itself request preprocessing output Example To do preprocessing only with comments and with line control information enter cp563 E C test cc d gt preprocess E no line commands P Compiler Use 4 29 const_string_literals Option const_string literals no_const string literals Default const string literals Description Control whether C string literals and wide string literals are const as required by the standard or non const as was true in earlier versions of the C language Example cp563 no_const_string_literals test cc 4 30 Chapter 4 create_pch Option create_pch filename Arguments A filename specifying the precompiled header file to create Description If other conditions are satisfied see the Precompiled Headers section create a precompiled header file with the specified name If pch automatic PCH mode or use_pch appears on the command line following this option its effect is erased Example To create a precompiled header file with the name test pch enter cp563 create_pch test pch test cc d gt pch use_pch Section Precompiled Headers in chapter Language Implementation Compiler Use 4 31 define_macro D Option Dmacro parm list def define_macro macro parm list def Arguments The macro you want to define and
167. ile must be an lvalue cl SVR4 C option only in ansi C SVR4 C compatibility option can be used only when compiling ANSI C using out of scope declaration using out of scope declaration of entity kind entity declared at line xxxx cl strict ansi incompatible_with _SVR4 strict ANSI mode is incompatible with SVR4 C mode cannot inline call call of entity kind ent ty declared at line xxxx cannot be inlined cannot inline entity kind entity cannot be inlined cl_invalid_pch_directory invalid PCH directory exp_except_or_finally expected __ except or _ finally leave_must be in try a __ leave statement may only be used within a __ try not found on pack alignment stack xxxx not found on pack alignment stack B 50 0689 0690 0691 0692 0693 0694 0695 0696 0697 0698 0699 0701 Appendix B empty_pack alignment_ stack empty pack alignment stack cl rtti option only_in_cplusplus RTTI option can be used only when compiling C inaccessible_elided cctor entity kind entity required for copy that was eliminated is inaccessible uncallable elided cctor entity kind entity required for copy that was eliminated is not callable because reference parameter cannot be bound to rvalue typeid_needs_typeinfo lt typeinfo gt must be included before typeid is used cannot_Cast_away_const xxxx cannot cast away const or other type
168. in semantic errors that would prevent them from being compiled Therefore a reference to a template class should not automatically instantiate all the member functions of that class It should be noted that certain template entities are always instantiated when used e g inline functions 1 Since templates are descriptions of entities typically classes that are paramcterizable according to the types they operate upon they are sometimes called parameterized types Language Implementation 3 25 From these requirements one can see that if the compiler is responsible for doing all the instantiations automatically it can only do so on a program wide basis That is the compiler cannot make decisions about instantiation of template entities until it has seen all the source files that make up a complete program This C compiler provides an instantiation mechanism that does automatic instantiation at link time For cases where you want more explicit control over instantiation the C compiler also provides instantiation modes and instantiation pragmas which can be used to exert fine grained control over the instantiation process 3 5 1 AUTOMATIC INSTANTIATION The goal of an automatic instantiation mode is to provide painless instantiation You should be able to compile source files to object code then link them and run the resulting program and never have to worry about how the necessary instantiations get done In pract
169. int char The argument to an instantiation pragma may not be a compiler generated function an inline function or a pure virtual function Language Implementation 3 33 3 5 4 IMPLICIT INCLUSION When implicit inclusion is enabled the C compiler is given permission to assume that if it needs a definition to instantiate a template entity declared in a h file it can implicitly include the corresponding cc file to get the source code for the definition For example if a template entity ABC f is declared in file xyz h and an instantiation of ABC f is required in a compilation but no definition of ABC f appears in the source code processed by the compilation the compiler will look to see if a file xyz cc exists and if so it will process it as if it were included at the end of the main source file To find the template definition file for a given template entity the C compiler needs to know the full path name of the file in which the template was declared and whether the file was included using the system include syntax e g include lt file h gt This information is not available for preprocessed source containing line directives Consequently the C compiler will not attempt implicit inclusion for source code containing line directives By default the list of definition file suffixes tried is cc cpp and cxx If c is supplied to the control program cc563 c is also used as C file Implicit inclusi
170. ironment variable to the full pathname of the license file FLEXlIm license error cannot read license file Every user needs to have read access on the license file and at least execute access on every directory component in the pathname of the license file Write access is never needed Read access on directories is recommended FLEXIm license error no such feature exists Check the license file There should be a line starting with FEATURE SWiiiiii j A 34 Appendix A for identifying a compatible host architecture During product installations the product code is shown e g SW008002 SW019002 The number in the software code is the same as the number in the product code except that the first number may contain an extra leading zero it must be six digits long The line after the license error message describes the expected feature format and includes the host code Correct the license file using the license data sheet for the product and run the Imreread command There is one catch do not add extra SERVER lines or change existing SERVER lines in the license file FLEXlIm license error license server does not support this feature If the LM_LICENSE_FILE variable has been set to the format number amp bost then see first the solution for the message FLEXlm license error no such feature exists Run the Imreread program to inform the license server about a changed license data fi
171. is consumed With sharing the disadvantage of large precompiled header files can be minimized without giving up the advantage of a significant speedup in compilation times Consequently to take full advantage of header file precompilation users should expect to reorder the include sections of their source files and or to group include directives within a commonly used header file Below is an example of how this can be done A common idiom is this finclude comnfile h pragma hdrstop include where comnfile h pulls in directly and indirectly a few dozen header files the pragma hdrstop is inserted to get better sharing with fewer PCH files The PCH file produced for comnfile h can be a bit over a megabyte in size Another idiom used by the source files involved in declaration processing is this finclude comnfile h finclude decl_hdrs h pragma hdrstop finclude Language Implementation 3 43 decl_hdrs h pulls in another dozen header files and a second somewhat larger PCH file is created In all the source files of a particular program can share just a few precompiled header files If disk space were at a premium you could decide to make comnfile h pull in all the header files used then a single PCH file could be used in building the program Different environments and different projects will have different needs but in general users should be aware that making the best use of the preco
172. l invalid instantiation_ directory invalid directory for instantiation files cl one instantiation_per object option only in_cplusplus option one instantiation_per object can be used only when compiling C invalid_output_file invalid output file xxxx cannot_open_output_file cannot open output file xxx cl_ii_file_name_incompatible_with_multiple_inputs an instantiation information file name may not be specified when compiling several input files cl one instantiation per object incompatible with multiple inputs option one instantiation_per_ object may not be used when compiling several input files B 68 0923 0925 0926 0928 0929 0930 0931 0932 0935 0936 0937 0941 Appendix B cl_ambiguous_option more than one command line option matches the abbreviation SSN cv_qualified_function_type a type qualifier cannot be applied to a function type cannot open definition list file cannot open definition list file xxxx cl late tiebreaker option only_in_cplusplus late early tiebreaker option can be used only when compiling C cl strict ansi incompatible_with_tsw_extensions strict ANSI mode is incompatible with TASKING Embedded C extensions tsw_embedded_extensions_not_allowed TASKING Embedded C extensions not allowed tsw_at_already_used _at can only be used once in a declaration tsw_atbit_already_used _atbitQ can only be used
173. laration that is not a definition for modification d M A for address taken U for used cC for changed but actually meaning used and modified in a single operation such as an increment 7 for any other kind of reference or for an error in which the kind of reference is indeterminate symbol id is a unique decimal number for the symbol The fields of the above line are separated by tab characters 4 112 Chapter 4 4 2 INCLUDE FILES You may specify include files in two ways enclosed in lt gt or enclosed in When an include directive is seen the following algorithm is used to try to open the include file 1 If the filename is enclosed in and it is not an absolute pathname does not begin with a for PC or a for UNIX the include file is searched for in the directory of the file containing the include line For example in PC cp563 source test cc UNIX cp563 source test cc cp563 first searches in the directory source source for UNIX for include files If you compile a source file in the directory where the file is located cp563 test cc the compiler searches for include files in the current directory amp This first step is not done for include files enclosed in lt gt 2 Use the directories specified with the I or include_ directory option in a left to right order For example PC cp563 I include d
174. lass or namespace name bad friend decl invalid friend declaration value returned in constructor a constructor or destructor may not return a value bad_destructor_decl invalid destructor declaration class_and_member_name_conflict invalid declaration of a member with the same name as its class global_qualifier_not_allowed global scope qualifier leading is not allowed name not found in file scope the global scope has no xxxx B 22 0283 0284 0285 0286 0287 0288 0289 0290 0291 0292 0293 0294 0296 Appendix B qualified_name_not_allowed qualified name is not allowed null reference NULL reference is not allowed brace initialization not allowed initialization with is not allowed for object of type type ambiguous_base_class base class type is ambiguous ambiguous_derived_class derived class type contains more than one instance of class type derived class from virtual base cannot convert pointer to base class type to pointer to derived class type base class is virtual no_matching constructor no instance of constructor entity matches the argument list ambiguous_copy_constructor copy constructor for class type is ambiguous no_default_constructor no default constructor exists for class type not a field or base class xxxx is not a
175. le cp563 suppress_vtbl test cc d gt force_vtbl Compiler Use 4 97 sys include Option sys include directory Arguments The name of the system include directory to search for include file s Description Change the algorithm for searching system include files whose names do not have an absolute pathname to look in directory Example cp563 sys include proj include test cc d gt Section 4 2 Include Files include_directory 4 98 Chapter 4 timing Option timing Default No timing information is generated Description Generate compilation timing information This option causes the compiler to display the amount of CPU time and elapsed time used by each phase of the compilation and a total for the entire compilation Example cp563 test cc processed 180 lines at 8102 lines min Compiler Use 4 99 trace_includes H Option H trace includes Description Do preprocessing only Instead of the normal preprocessing output generate on the preprocessing output file a list of the names of files included Examples cp563 H test cc iostream h string h d gt preprocess E no_line_ commands P 4 100 Chapter 4 tsw_diagnostics Option tsw_diagnostics no_tsw_diagnostics Default tsw_diagnostics Description Enable or disable a mode in which the error message is given in the TASKING style So in the sam
176. le cp563 j test cc d gt no_warnings w 4 76 no_warnings w Option w no_warnings Description Suppress all warning messages Error messages are still issued Example To suppress all warnings enter cp563 w test cc Chapter 4 Compiler Use 4 77 old_line_commands Option old_line_commands Description When generating source output put out line directives in the form used by the Reiser cpp that is nnn instead of line nnn Example To do preprocessing only without comments and with old style line control information enter cp563 E old line commands test cc d gt preprocess E no_line_ commands P 4 78 Chapter 4 old_specializations Option old_specializations no_old_specializations Default old_specializations Description Enable or disable acceptance of old style template specializations that is specializations that do not use the template lt gt syntax Example cp563 no_old_specializations test cc Compiler Use 4 79 old_style_preprocessing Option old_style_preprocessing Description Forces pcc style preprocessing when compiling This may be used when compiling an ANSI C program on a system in which the system header files require pcc style preprocessing Example To force pcc style preprocessing enter cp563 E old style preprocessing test cc d gt preprocess E no_line_ comm
177. le If lmreread succeeds informing the license server but the error message persists there are basically three possibilities The license key is incorrect If this is the case then there must be an error message in the log file of lmgrd Correct the key using the license data sheet for the product Finally rerun lmreread The log file of Imgrd is usually specified to Imgrd at startup with the 1 option or with gt Your network has more than one FLEXlm license server daemon and the default license file location for Imreread differs from the default assumed by the program Also there must be more than one license file Try one of the following solutions on the same host which produced the error message type lmreread c usr local flexlm licenses license dat setLM LICENSE_FILE to the license file location and retry the lmreread command use the lmreread program supplied with the product SW000098 Flexible License Manager SW000098 is bundled with all TASKING products Flexible License Manager FLEXIm A 35 3 There is a protocol version mismatch between lmgrd and the daemon with the name Tasking the vendor daemon according to FLEXIm terminology or there is some other internal error These errors are always written to the log file of Imgrd The solution is to upgrade the Imgrd daemon to the one supplied in SW000098 the bundled Flexible License Manager product On the other hand if lmr
178. lean controlling expr is constant controlling expression is constant switch selector expr is constant selector expression is constant bad param specifier invalid specifier on a parameter bad specifier outside_class decl invalid specifier outside a class declaration dupl decl specifier duplicate specifier in declaration base_class_not allowed for union a union is not allowed to have a base class access already_specified multiple access control specifiers are not allowed missing class definition class or struct definition is missing name_not member of class_or_base_classes qualified name is not a member of class type or its base classes member ref reguires_object a nonstatic member reference must be relative to a specific object nonstatic member def not allowed a nonstatic data member may not be defined outside its class already_defined entity kind entity has already been defined pointer _to reference pointer to reference is not allowed reference to reference reference to reference is not allowed B 20 0250 0251 0252 0253 0254 0255 0256 0257 0258 0259 0260 0261 0262 0263 Appendix B reference to_void reference to void is not allowed array_of reference array of reference is not allowed missing initializer on reference reference entity kind entity requires an initializer exp_comma 27009 expe
179. ler see the TASKING DSP56xxx C Compiler User s Guide The C compiler is normally invoked via the control program which is part of the toolchain The control program facilitates the invocation of various components of the toolchain The control program recognizes several filename extensions C source files cc cxx cpp or c with the c option are passed to the C compiler C source files c are passed to the compiler Assembly sources asm or src are passed to the assembler Relocatable object files obj and libraries a are recognized as linker input files Files with extension out and dsc are treated as locator input files The control program supports options to stop at any stage in the compilation process and has options to produce and retain intermediate files The C compiler accepts the C language of the ISO IEC 14882 1998 C standard with some minor exceptions documented in the next chapter With the proper command line options it alternatively accepts the ANSI ISO C language or traditional K amp R C B W Kernighan and D M Ritchie It also accepts embedded C language extensions The C compiler does no optimization Its goal is to produce quickly a complete and clean parsed form of the source program and to diagnose errors It does complete error checking produces clear error messages including the position of the error within the source line and avoids cascading of errors It also tries to av
180. loating licenses is called a license server A license manager running on the license server keeps track of the number of users d gt See Appendix A Flexible License Manager FLEXIm for more information 1 4 1 OBTAINING LICENSE INFORMATION Before you can install a software license you must have a License Information Form containing the license information for your software product If you have not received such a form follow the steps below to obtain one Otherwise you can install the license Node locked license PC only 1 If you need a node locked license you must determine the hostid of the computer where you will be using the product See section 1 4 7 How to Determine the Hostid When you order a TASKING product provide the hostid to your local TASKING sales representative The License Information Form which contains your license key information will be sent to you with the software product Software Installation 1 9 Floating license 1 If you need a floating license you must determine the hostid and hostname of the computer where you want to use the license manager Also decide how many users will be using the product See section 1 4 7 How to Determine the Hostid and section 1 4 8 How to Determine the Hostname 2 When you order a TASKING product provide the hostid hostname and number of users to your local TASKING sales representative The License Information Form which contains your license k
181. lowed use extern asm instead of _asmfunc for external assembly functions UTILITY PROGRAMS all TASKING M XIGNAddV o Utility Programs C 3 1_INTRODUCTION This appendix describes the utility programs that are delivered with the C compiler The utility programs help with various link time issues and are meant to be called from the control program amp When you use a UNIX shell Bourne shell C shell arguments containing special characters such as and must be enclosed with or escaped The option in the C shell becomes or 2 PRELINKER The prelinker is invoked at link time to manage automatic instantiation of template entities It is given a complete list of the object files and libraries that are to be linked together It examines the external names defined and referenced within those files and finds cases where template entities are referenced but not defined It then examines information in the object files that describes instantiations that could have been done during compilation and assigns the needed instantiations to appropriate files The prelinker then invokes the compiler again to compile those files which will do the necessary instantiations The invocation syntax of the C prelinker is prelk56 option files DSP5600x prelk563 option files DSP563xx DSP566xx where the files list includes all object files and librari
182. lowing format mm dd hh mm DAEMON name message Where mm dd bb mm Is the month day hour minute that the message was logged DAEMON name Either license daemon or the string from the DAEMON line that describes your daemon In the case where a single copy of the daemon cannot handle all of the requested licenses an optional _ followed by a number indicates that this message comes from a forked daemon message The text of the message The log files can be used to e Inform you when it may be necessary to update your application software licensing arrangement e Diagnose configuration problems e Diagnose daemon software errors The messages are grouped below into the above three categories with each message followed by a brief description of its meaning A 26 Appendix A 4 1 INFORMATIONAL MESSAGES Connected to node This daemon is connected to its peer on node node CONNECTED master is name The license daemons log this message when a quorum is up and everyone has selected a master DEMO mode supports only one SERVER bost An attempt was made to configure a demo version of the software for more than one server host DENIED N feature to user mm dd yy bb mm user was denied access to N licenses of feature This message may indicate a need to purchase more licenses EXITING DUE TO SIGNAL nnn EXITING with code nnn All daemons list the reason that the daemon has exited EXPIRED feature
183. mpiled header support will reguire some experimentation and probably some minor changes to source code 3 44 Chapter 3 LANGUAGE COMPILER USE all TASKING M daldVHyD Compiler Use 4 3 4 1 INVOCATION The invocation syntax of the C compiler is cp56 option file DSP5600x cp563 option file DSP563xx DSP566xx Invocations and examples are given for the DSP563xx DSP566xx cp563 Substitute the appropriate executable name for your DSP processor type amp When you use a UNIX shell Bourne shell C shell arguments containing special characters such as and must be enclosed with or escaped The option in the C shell becomes or The C compiler accepts a C source file name and command line options in random order A C source file must have a cc cxx or cpp suffix Command line options may be specified using either single character option codes e g o or keyword options e g output A single character option specification consists of a hyphen followed by one or more option characters e g Ab If an option reguires an argument the argument may immediately follow the option letter or may be separated from the option letter by white space A keyword option specification consists of two hyphens followed by the option keyword e g strict Keyword options may be abbreviated by specifying as many of the leading characters of th
184. name path with a on UNIX also Windows set LM_LICENSE_FILE path path UNIX setenv LM_LICENSE_FILE path fpath If you are running the TASKING software on multiple nodes you have three options for making your license file available on all the machines Place the license file in a partition which is available via NFS on Unix systems to all nodes in the network that need the license file Copy the license file to all of the nodes where it is needed Set LM LICENSE FILE to port host where host and port come from the SERVER line in the license file Flexible License Manager FLEXIm A 7 When the main license daemon Imgrd already runs it is sufficient to type the command lmreread for notifying the daemon that the license dat file has been changed Otherwise you must type the command lmgrd gt usr tmp license log amp Both commands reside in the flexlm bin directory mentioned before 2 3 DAEMON OPTIONS FILE It is possible to customize the use of TASKING software using a daemon options file This options file allows you to reserve licenses for specified users or groups of users to restrict access to the TASKING toolchain and to set software timeouts The following table lists the keywords that are recognized at the start of a line of a daemon options file Keywords Function RESERVE Ensure that TASKING software will always be available to one or more
185. nction type_specifier not allowed a type specifier may not be used here array_of function array of functions is not allowed array_of void array of void is not allowed B 10 0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 0100 0101 0102 0103 Appendix B function returning function function returning function is not allowed function returning array function returning array is not allowed param id list needs function def identifier list parameters may only be used in a function definition function type must come from declarator function type may not come from a typedef array_size_must_be_ positive the size of an array must be greater than zero array_size_too large array is too large empty_translation unit a translation unit must contain at least one declaration bad function return type a function may not return a value of this type bad array_element type an array may not have elements of this type decl should _be of param a declaration here must declare a parameter dupl param name duplicate parameter name id already_declared xxxx has already been declared in the current scope nonstd forward decl enum forward declaration of enum type is nonstandard class_too large class is too large Error Messages B 11 0104 0105 0106 0107 0108 0109 0110 0111 0112 0114 0115 0116 0117
186. nction with the same name as its class must be a constructor nested_class_anachronism using nested entity kind entity anachronism too_many_params_for_destructor a destructor may not have parameters bad_constructor_param copy constructor for class type may not have a parameter of type rype Error Messages B 31 0409 0410 0411 0412 0413 0414 0415 0416 0417 0418 0424 0425 0426 incomplete_function_return_type entity kind entity returns incomplete type type protected_access_problem protected entity kind entity is not accessible through a type pointer or object param_not_allowed a parameter is not allowed asm_decl_not_allowed an asm declaration is not allowed here no_conversion_function no suitable conversion function from type to type exists delete_of incomplete_class delete of pointer to incomplete class no_constructor for conversion no suitable constructor exists to convert from type to type ambiguous_ constructor for conversion more than one constructor applies to convert from type to type ambiguous conversion function more than one conversion function from type to type applies ambiguous conversion to builtin more than one conversion function from type to a built in type applies addr of constructor or destructor a constructor or dest
187. ndent lookup A void expression can be specified on a return statement in a void function Function try blocks i e try blocks that are the top level statements of functions constructors or destructors are implemented Universal character set escapes e g uabcd are implemented On a call in which the expression to the left of the opening parenthesis has class type overload resolution looks for conversion functions that can convert the class object to pointer to function types and each such pointed to surrogate function type is evaluated alongside any other candidate functions Template template parameters are implemented NEW LANGUAGE FEATURES NOT ACCEPTED The following features of the C standard are not implemented yet 3 3 3 Two phase name binding in templates as described in temp res and temp dep of the standard is not implemented The export keyword for templates is not implemented A partial specialization of a class member template cannot be added outside of the class definition ANACHRONISMS ACCEPTED The following anachronisms are accepted when anachronisms are enabled with anachronisms overload is allowed in function declarations It is accepted and ignored Definitions are not reguired for static data members that can be initialized using default initialization The anachronism does not apply to static data members of template classes they must always be defined Language
188. ngs The error threshold is set so that the reguested diagnostics will be listed Example To enable strict ANSI mode with error diagnostic messages enter cp563 A test cc Compiler Use 4 95 suppress_typeinfo_vars Option suppress_typeinfo_vars Description Suppress the generation of type info variables when run time type info RTTD is disabled By default only type info variables are generated no other run time type info With this option you can also suppress type info varables Example cp563 suppress_typeinfo_vars test cc d gt rtti 4 96 Chapter 4 Suppress_vtbl Option suppress_vtbl Description Suppress definition of virtual function tables in cases where the heuristic used by the C compiler to decide on definition of virtual function tables provides no guidance The virtual function table for a class is defined in a compilation if the compilation contains a definition of the first non inline non pure virtual function of the class For classes that contain no such function the default behavior is to define the virtual function table but to define it as a local static entity The suppress_vtbl option suppresses the definition of the virtual function tables for such classes and the force_vtbl option forces the definition of the virtual function table for such classes force_vtbl differs from the default behavior in that it does not force the definition to be local Examp
189. njection test cc d gt arg_dep_lookup 4 50 Chapter 4 gen_c_file_name Option gen_c file name file Arguments An output filename Default Module name with ic suffix Description This option specifies the file name to be used for the generated C output Example To specify the file out ic as the output file instead of test ic enter cp563 gen_c file name out ic test cc Compiler Use guiding_ decls Option guiding decls no guiding decls Default guiding decls Description Enable or disable recognition of guiding declarations of template functions A guiding declaration is a function declaration that matches an instance of a function template but has no explicit definition since its definition derives from the function template For example template lt class T gt void f T void f int When regarded as a guiding declaration f int is an instance of the template otherwise it is an independent function for which a definition must be supplied If no_guiding decls is combined with old_specializations a specialization of a non member template function is not recognized it is treated as a definition of an independent function Example cp563 no_guiding decls test cc d gt old_specializations 4 51 4 52 Chapter 4 implicit_extern_c_type_conversi on Option implicit_extern_c_type_conversion no_implicit_extern_c_type_co
190. nker then simulates a link operation to determine which symbols must be defined for the application to link successfully 2 6 Chapter 2 When the link simulation has been completed the prelinker processes each input file to determine whether any new instantiations should be assigned to the input file or if any existing instantiations should be removed The prelinker goes through the current instantiation list from the instantiation information file to determine whether any of the existing instantiations are no longer needed An instantiation may be no longer needed because the template entity is no longer referenced by the program or because a user supplied specialization has been provided If the instantiation is no longer needed it is removed from the list internally the file will be updated later and the file is flagged as requiring recompilation The prelinker then examines any symbols referenced by the input file The responsibility for generating an instantiation of a given entity that has not already been defined is assigned to the first file that is capable of generating that instantiation Once all of the assignments have been updated the prelinker once again goes through the list of object files For each if the corresponding instantiation information file must be updated the new file is written Only source files whose corresponding ii file has been modified will be recompiled At this point each ii file contains the inf
191. nly Enable or disable recognition of wchar_t as a keyword Enable or disable wrapping of diagnostic messages Generate cross reference file xfile Table 4 1 Compiler options alphabetical Description Option Include options Look in dir for include files Look in dir for system include files include_directory dir ldir sys include dir Compiler Use Description Option Set the valid suffixes for include files Include file at the beginning of the compilation incl_suffixes suffixes preinclude file Preprocess options Preprocess only Keep line control information and remove comments Preprocess only Remove line control information and comments Keep comments in the preprocessed output Do syntax checking only Specify that a full compilation should be done not just preprocessing Put out line control information in the form nnn instead of line nnn Forces pcc style preprocessing Preprocess only Emit dependencies for make Preprocess only Generate list of included files Define preprocessor macro Remove preprocessor macro Allow or disallow macros with a variable number of arguments Allow or disallow macros with a variable number of arguments and allow the naming of the list preprocess no_line_commands P comments C no_code gen n no_preproc_only old_line_commands old_style_preproce
192. nonstatic data member or base class of class type indirectnonvirtual base class_not allowed indirect nonvirtual base class is not allowed bad union field invalid union member class type has a disallowed member function bad rvalue array invalid use of non lvalue array Error Messages B 23 0297 0298 0299 0300 0301 0302 0304 0305 0306 0307 0308 0309 0310 exp_operator expected an operator inherited_member_not_allowed inherited member is not allowed indeterminate_overloaded_function cannot determine which instance of entity kind entity is intended bound_function_must_be_called a pointer to a bound function may only be used to call the function duplicate_typedef typedef name has already been declared with same type function_redefinition entity kind entity has already been defined no_matching function no instance of entity kind entity matches the argument list type def not allowed in func type decl type definition is not allowed in function return type declaration default arg not at end default argument not at end of parameter list default arg already defined redefinition of default argument ambiguous overloaded function more than one instance of entity kind entity matches the argument list ambiguous_ constructor more than one instance of constructor entity matches the argument list bad def
193. nstall the TASKING software product following the installation procedure described earlier in this chapter on the computer or workstation where you will use the software product As a result of this installation two additional files for FLEXlm will be present in the flex1m subdirectory of the toolchain Tasking The Tasking daemon vendor daemon license dat A template license file Step 2 If you already have installed FLEXlm v6 1 or higher for Windows or v2 4 or higher for UNIX for example as part of another product you can skip this step and continue with step 3 Otherwise install SW000098 the Flexible License Manager FLEXlm on the license server where you want to use the license manager The installation of the license manager on Windows also sets up the license daemon to run automatically whenever a license server reboots On UNIX you have to perform the steps as described in section 1 4 5 Setting Up the License Deaemon to Run Automatically It is not recommended to run a license manager on a Windows 95 or Windows 98 machine Use Windows NT instead or UNIX Step 3 If FLEXIm has already been installed as part of a non TASKING product you have to make sure that the bin directory of the FLEXlm product contains a copy of the Tasking daemon see step 1 Step 4 Insert the license information contained in the License Information Form in the license file which is being used by the license server This file is usu
194. nversion Default implicit_extern_c_type_conversion Description Enable or disable an extension to permit implicit type conversion in C between a pointer to an extern C function and a pointer to an extern C function This extension is allowed in environments where C and C functions share the same calling conventions Example cp563 mno implicit_extern_c type conversion test cc Compiler Use 4 53 implicit_include B Option B implicit_include no implicit include Default no implicit include Description Enable or disable implicit inclusion of source files as a method of finding definitions of template entities to be instantiated B is eguivalent to implicit include Example cp563 implicit include test cc d gt instantiate t Section Template Instantiation in chapter Language Implementation 4 54 Chapter 4 implicit_typename Option implicit typename no implicit typename Default implicit typename Description Enable or disable implicit determination from context whether a template parameter dependent name is a type or nontype Example cp563 mno implicit_typename test cc d gt typename Compiler Use 4 55 incl_suffixes Option include_suffixes suffixes Arguments A colon separated list of suffixes e g h hpp Description Specifies the list of suffixes to be used when searching for an include
195. ny given point in time For example struct B void func const char 3 14 Chapter 3 struct D public B public DO void Init const char struct func func const char msg D D void D Init const char t Should call B func calls func func instead new func t The global scope name must be present in a base class B func in this example for the nonstandard lookup to occur Even if the derived class were to have a member named func it is still the presence of B unc that determines how the lookup will be performed A parameter of type const void is allowed on operator delete it is treated as equivalent to void A period may be used for qualification where should be used Only may be used as a global qualifier Except for the global qualifier the two kinds of qualifier operators may not be mixed in a given name i e you may say A B C or A B C but not A B C or A B C A period may not be used in a vacuous destructor reference nor in a qualifier that follows a template reference such as A lt T gt B Cfront 2 1 does not correctly look up names in friend functions that are inside class definitions In this example function should refer to the functions and variables e g 1 and a1 from the class declaration Instead the global definitions are used Language Implementation 3 15 int al int el void f1
196. of __ uuiof must have a class type for which __ declspec uuid has been specified bad uuid string invalid GUID string in _ declspec uuid cl vla option only in C option vla can be used only when compiling C vla_with unspecified bound not allowed variable length array with unspecified bound is not allowed explicit template_args_not allowed an explicit template argument list is not allowed on this declaration variably_modified type not allowed an entity with linkage cannot have a variably modified type vla is not auto a variable length array cannot have static storage duration sym_not a_template entity kind entity is not a template expected template arg expected a template argument B 66 0897 0898 0899 0901 0902 0903 0905 0906 0907 0908 0909 0910 Appendix B explicit template args in expr explicit function template argument lists are not supported yet in expression contexts no params with class or enum type nonmember operator reguires a parameter with class or enum type cl enum oveloading option only in cplusplus option enum_overloading can be used only when compiling C destructor gualifier type mismatch qualifier of destructor name type does not match type type type_qualifier_ignored type qualifier ignored cl_nonstandard_qualifier_deduction_option_only_in_cplusplus option nonstd gualifier d
197. oid seeming overly finicky to a knowledgeable C or C programmer 2 4 Chapter 2 7 2 2 DEVELOPMENT STRUCTURE The next figure explains the relationship between the different parts of the TASKING DSP56xxx toolchain C source file C source file assembly file CC eC asm C compiler assembly file input object files library files a relocatable object module obj C prelinker Src assembler h recompilation object file linker linker object out generated C file mc C muncher ms generate termination and initialization code object file mo Y absolute object control program file Figure 2 1 Development flow Overview 2 5 2 2 1 THE PRELINKER PHASE The C compiler provides a complete prototype implementation of an automatic instantiation mechanism The automatic instantiation mechanism is a linker feedback mechanism It works by providing additional information in the object file that is used by a prelinker to determine which template entities require instantiation so that the program can be linked successfully Unlike most aspects of the C compiler the automatic instantiation mechanism is by its nature dependent on certain operating system and object file format properties In particular the prelinker is a separate program that accesses information about the symb
198. ols defined in object files At the end of each compilation the C compiler determines whether any template entities were referenced in the translation unit If so an instantiation information file is created referred to for convenience as a ii file If no template entities were referenced in the translation unit the ii file will not be created and any existing file will be removed If an error occurs during compilation the state of the ii file is unchanged Once a complete set of object files has been generated including the appropriate flags the prelinker is invoked to determine whether any new instantiations are required or if any existing instantiations are no longer required The command line arguments to the prelinker include a list of input files to be analyzed The input files are the object files and libraries that constitute the application The prelinker begins by looking for instantiation information files for each of the object files If no instantiation information files are present the prelinker concludes that no further action is required If there are instantiation information files the prelinker reads the current instantiation list from each information file The instantiation list contains the list of instantiations assigned to a given source file by a previous invocation of the prelinker The prelinker produces a list of the global symbols that are referenced or defined by each of the input files The preli
199. on works well alongside automatic instantiation but the two are independent They can be enabled or disabled independently and implicit inclusion is still useful when automatic instantiation is not done The implicit inclusion mode can be turned on by the command line option implicit include Implicit inclusions are only performed during the normal compilation of a file i e not when doing only preprocessing A common means of investigating certain kinds of problems is to produce a preprocessed source file that can be inspected When using implicit inclusion it is sometimes desirable for the preprocessed source file to include any implicitly included files This may be done using the no_preproc_only command line option This causes the preprocessed output to be generated as part of a normal compilation When implicit inclusion is being used the implicitly included files will appear as part of the preprocessed output in the precise location at which they were included in the compilation 3 34 Chapter 3 3 6_ PREDEFINED MACROS The C compiler defines a number of preprocessing macros Many of them are only defined under certain circumstances This section describes the macros that are provided and the circumstances under which they are defined All C predefined macros are also defined STDC FIE __LINE__ _ TIME _ _ DATE _ _ MODEL _DEFMEM _STKMEM __cplusplus c_plusplus Defined in ANSI C mode and in C
200. operator This is cfront behavior that is known to be relied upon in at least one widely used library Here is an example struct A struct B public A B amp operator A amp By default as well as in cfront compatibility mode there will be no implicit declaration of B operator const B amp whereas in strict ANSI mode B operator A amp is not a copy assignment operator and B operator const Bs is implicitly declared Implicit type conversion between a pointer to an extern C function and a pointer to an extern C function is permitted Here s an example extern C void f f s type has extern C linkage void pf pf points to an extern C function amp f error unless implicit conversion is allowed This extension is allowed in environments where C and C functions share the same calling conventions It is enabled by default it can also be enabled in cfront compatibility mode or with option implicit extern_c_type_conversion It is disabled in strict ANSI mode A operator whose second and third operands are string literals or wide string literals can be implicitly converted to char or wchar_t Recall that in C string literals are const There is a deprecated implicit conversion that allows conversion of a string literal to char dropping the const That conversion however applies only to simple string literals Allowing it for the r
201. opsis Imstat a A c icense file f feature 1 regular expression s server S daemon t timeout Description License administration is simplified by the lmstat utility Imstat allows you to instantly monitor the status of all network licensing activities Imstat allows a system administrator to monitor license management operations including e Which daemons are running e Users of individual features e Users of features served by a specific DAEMON Options a Display all information A List all active licenses c license_file Use the specified icense_file If no c option is specified Imstat looks for the environment variable LM_LICENSE_FILE in order to find the license file to use If that environment variable is not set lmstat looks for the file c flexlm license dat Windows or usr local flexlm licenses license dat UNIX f feature List all users of the specified feature s l regular_expression List all users of the features matching the given regular_expression s server Display the status of the specified server node s S daemon List all users of the specified daemon s features Flexible License Manager FLEXIm A 19 t timeout Specifies the amount of time in seconds lmstat waits to establish contact with the servers The default value is 10 seconds A larger value may be desirable if the daemons are being run on busy systems or
202. or limit number Default error_limit 100 Description Set the error limit to number The C compiler will abandon compilation after this number of errors remarks and warnings are not counted toward the limit By default the limit is 100 Example When you want compilation to stop when 10 errors occurred enter cp563 e10 test cc 4 41 4 42 Chapter 4 error_output Option error_output efile Arguments The name for an error output file Description Redirect the output that would normally go to stderr that is diagnostic messages to the file efile This option is useful on systems where output redirection of files is not well supported If used this option should probably be specified first in the command line since otherwise any command line errors for options preceding the error_output would be written to stderr before redirection Example To write errors to the file test err instead of stderr enter cp563 error_output test err test cc Compiler Use 4 43 exceptions x Option x exceptions no_exceptions Default no_exceptions Description Enable or disable support for exception handling x is equivalent to exceptions Example cp563 exceptions test cc 4 44 Chapter 4 explicit Option explicit no_explicit Default explicit Description Enable or disable support for the explicit specifier on constructor declara
203. orary file name restrict_not allowed restrict is not allowed Error Messages B 47 0644 0645 0646 0647 0648 0649 0650 0651 0652 0654 0655 0656 0657 restrict_pointer_to_function a pointer or reference to function type may not be qualified by restrict bad_declspec_modifier xxxx is an unrecognized __ declspec attribute calling convention_not_allowed a calling convention modifier may not be specified here conflicting calling conventions conflicting calling convention modifiers cl_strict_ansi_incompatible_with_microsoft strict ANSI mode is incompatible with Microsoft mode cl_cfront_incompatible_with_microsoft cfront mode is incompatible with Microsoft mode calling convention ignored calling convention specified here is ignored calling convention may_not_precede _ nested declarator a calling convention may not be followed by a nested declarator calling convention ignored for type calling convention is ignored for this type decl modifiers incompatible with previous decl declaration modifiers are incompatible with previous declaration decl modifiers invalid for this decl the modifier xxxx is not allowed on this declaration branch into try_block transfer of control into a try block incompatible inline specifier on specific decl inline specification is incompatible with previous entity declared at line xxxx B 48
204. ormation needed to recompile the source file and a list of instantiations assigned to the source file in the form of mangled function and static data member names If an error occurs during a recompilation the prelinker exits without updating the remaining information files and without attempting any additional compilations If all recompilations complete without error the prelink process is repeated since an instantiation can produce the demand for another instantiation This prelink cycle finding uninstantiated templates updating the appropriate ii files and dispatching recompilations continues until no further recompilations are reguired When the prelinker is finished the linker is invoked Note that simply because the prelinker completes successfully does not assure that the linker will not detect errors Unresolvable template references and other linker errors will not be diagnosed by the prelinker Overview 27 2 2 2 THE MUNCHER PHASE The C muncher implements global initialization and termination code The muncher accepts the output of the linker as its input file It generates a C program that defines a data structure containing a list of pointers to the initialization and termination routines This generated program is then compiled and linked in with the executable The data structure is consulted at run time by startup code invoked from _main and the routines on the list are invoked at the appropriate times
205. partial specialization would have been made the instantiation of entity kind entity ambiguous expr not integral or enum expression must have integral or enum type expr not arithmetic or enum expression must have arithmetic or enum type expr_not arithmetic or enum or pointer expression must have arithmetic enum or pointer type cast not integral or enum type of cast must be integral or enum cast_not arithmetic_or enum or pointer type of cast must be arithmetic enum or pointer expr_not_object_pointer expression must be a pointer to a complete object type member partial spec_not in class a partial specialization of a member class template must be declared in the class of which it is a member partial spec nontype_expr a partial specialization nontype argument must be the name of a nontype parameter or a constant different return type on virtual function override return type is not identical to return type type of overridden virtual function entity kind entity cl guiding decls option only in cplusplus option guiding decls can be used only when compiling C Error Messages B 63 0857 0858 0859 0860 0861 0862 0863 0864 0865 0866 0867 0868 0869 member partial spec_not in namespace a partial specialization of a class template must be declared in the namespace of which it is a member pure_virtual_function entit
206. path is the correct paths to lmgrd license dat and debug log file You will have to ensure that the vendor daemons listed in batb to license license dat have execute permissions for username The paths to all the vendor daemons in the license file are listed on each DAEMON line Is it ok to run lmgrd as root UNIX only It is not prudent to run any command particularly a daemon as root on UNIX as it may pose a security risk to the Operating System Therefore we recommend that lmgrd be run as a non privileged user not root If you are starting lmgrd from a boot script we recommend that you use su username c umask 022 path lmgrd c path license dat l path log to run lmgrd as a non privileged user Does FLEXlm licensing impose a heavy load on the network No but partly this depends on the application and end user s use A typical checkout reguest reguires 5 messages and responses between client and server and each message is lt 150 bytes When a server is not receiving reguests it reguires virtually no CPU time When an application or Imstat requests the list of current users this can significantly increase the amount of networking FLEXlm uses depending on the number of current users Also prior to FLEXlm v5 use of port host can increase network load since the license file is down loaded from the server to the client port host should be if possible limited to small license files sa
207. pected end of number undefined identifier identifier xxxx is undefined useless_type_qualifiers type qualifiers are meaningless in this declaration bad_hex_digit invalid hexadecimal number integer too large integer constant is too large bad octal digit invalid octal digit zero length string guoted string should contain at least one character too_many_ characters too many characters in character constant bad character value character value is out of range expr_not constant expression must have a constant value 0029 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 0040 0041 0042 Appendix B exp_primary_expr expected an expression bad_float_value floating constant is out of range expr_not_integral expression must have integral type expr_not_arithmetic expression must have arithmetic type exp line number expected a line number bad line number invalid line number error directive error directive xxxx missing pp_if the if for this directive is missing missing endif the endif for this directive is missing pp_else_already_appeared directive is not allowed an else has already appeared divide_by_zero division by zero exp_ identifier expected an identifier expr_not_scalar expression must have arithmetic or pointer type incompatible_operands operand types are incompatible rype and type Error Message
208. pendencies for make Override normal error severity Display error number in diagnostic messages Disallow or allow normal functions as template instantiation Accept dollar signs in identifiers Early handling of tie breakers in overload resolution Enable or disable support for embedded C language extension keywords Enable the diagnostics of noncompliance with the Embedded C subset Enable or disable operator functions to overload builtin operators on enum typed operands Specify maximum number of errors Send diagnostics to error list file Enable or disable support for exception handling Enable or disable support for the explicit specifier on constructor declarations 4 5 4 6 Chapter 4 Option Description extended_variadic_macros no_extended_variadic_macros extern_inline no_extern_inline force_vibl for_init_diff_warning no_for_init_diff_warning friend_injection no_friend_injection gen_c file_name file guiding_decls no_guiding_decls implicit_extern_c_type_conversion Allow or disallow macros with a variable number of arguments and allow the naming of the list Enable or disable inline function with external C linkage Force definition of virtual function tables Enable or disable warning when old style or scoping is used Control the visibility of friend declarations Specify name of generated C output file
209. plicates a number of features and bugs of cfront 2 1 and 3 0 x Complete compatibility is not guaranteed or intended the mode is there to allow programmers who have unwittingly used cfront features to continue to compile their existing code In particular if a program gets an error when compiled by cfront the C compiler may produce a different error or no error at all Command line options are also available to enable and disable anachronisms and strict standard conformance checking 3 3 1 NEW LANGUAGE FEATURES ACCEPTED The following features not in traditional C the C language of The Annotated C Reference Manual by Ellis and Stroustrup ARM but in the standard are implemented e The dependent statement of an if while do while or for is considered to be a scope and the restriction on having such a dependent statement be a declaration is removed e The expression tested in an if while do while or for as the first operand of a operator or as an operand of the amp or operators may have a pointer to member type or a class type that can be converted to a pointer to member type in addition to the scalar cases permitted by the ARM e Qualified names are allowed in elaborated type specifiers e A global scope qualifier is allowed in member references of the form x A B and p gt A B e The precedence of the third operand of the operator is changed e If control reaches
210. r files have_changed header files used to generate precompiled header file xxxx have changed pch cmd line option mismatch the command line options do not match those used when precompiled header file xxxx was created pch file prefix mismatch the initial seguence of preprocessing directives is not compatible with those of precompiled header file xxxx unable to get mapped memory unable to obtain mapped memory B 46 0632 0633 0634 0635 0636 0637 0638 0639 0640 0641 0642 0643 Appendix B using pch xxxx using precompiled header file xxxx creating pch xxxx creating precompiled header file xxxx memory_mismatch memory usage conflict with precompiled header file xxxx cl invalid pch size invalid PCH memory size cl pch must be_first PCH options must appear first in the command line out of memory during pch allocation insufficient memory for PCH memory allocation cl pch incompatible_with multiple inputs precompiled header files may not be used when compiling several input files not enough preallocated memory insufficient preallocated memory for generation of precompiled header file xxxx bytes reguired program entity_too large for pch very large entity in program prevents generation of precompiled header file cannot chdir xxxx is not a valid directory cannot build temp file name cannot build temp
211. ract class function returning abstract class type is not allowed Error Messages B 25 0324 0325 0326 0327 0328 0329 0330 0332 0333 0334 0335 0336 0337 duplicate_friend_decl duplicate friend declaration inline_and_nonfunction inline specifier allowed on function declarations only inline_not_allowed inline is not allowed bad storage class with inlinc invalid storage class for an inline function bad member storage _class invalid storage class for a class member local class_function def missing local class member entity kind entity requires a definition inaccessible special function entity kind entity is inaccessible missing const_copy_constructor class type has no copy constructor to copy a const object definition _of implicitly_declared function defining an implicitly declared member function is not allowed no_suitable_copy_constructor class type has no suitable copy constructor linkage_specifier_not_allowed linkage specification is not allowed bad_linkage_specifier unknown external linkage specification incompatible_linkage_specifier linkage specification is incompatible with previous entity declared at line xxxx B 26 0338 0339 0340 0341 0342 0343 0344 0345 0346 0347 0348 0349 0350 Appendix B overloaded function linkage more than one instance of overloaded
212. ree the license What happens when the license server dies FLEXlm applications send periodic heartbeats to the server to discover if it has died What happens when the server dies is then up to the application Some will simply continue periodically attempting to re checkout the license when the server comes back up Some will attempt to re checkout a license a few times and then presumably with some warning exit Some GUI applications will present pop ups to the user periodically letting them know the server is down and needs to be re started How do you tell if a port is already in use 99 44 of the time if it s in use it s because lmgrd is already running on the port or was recently killed and the port isn t freed yet Assuming this is not the case then use telnet host port if it says can t connect its a free port A 41 A 42 Appendix A Does FLEXlm reguire root permissions No There is no part of FLEXIm lmgrd vendor daemon or application that requires root permissions In fact it is strongly recommended that you do not run the license server Imgrd as root since root processes can introduce security risks If Imgrd must be started from the root user for example in a system boot script we recommend that you use the su command to run lmgrd as a non privileged user su username c path lmgrd c path license dat 1 path log where username is a non privileged user and
213. res due to portehost will generate the error LM SERYNOREADLIIC 61 ERROR MESSAGES all TASKING M XIGNAddV Error Messages B 3 1_ INTRODUCTION This appendix lists all diagnostic messages starting with the error number and the error tag name followed by the message itself The error number and or error tag can be used in diag_severity options to override the normal error severity The C compiler produces error messages on standard error output With the error_output option you can redirect the error messages to an error list file Normally diagnostics are written to stderr in the following form TASKING layout severity err_num message The severity can be one of R remark W warning E error F fatal error S internal error With no_tsw_diagnostics diagnostics are written to stderr in the following form filename line line_num message With display_error_number this form will be filename line line_num severity err_num message or filename line line_num severity err_num D message Where severity can be one of remark warning error catastrophic error command line error or internal error If the severity may be overridden the error number will include the suffix D for discretionary otherwise no suffix will be present In a raw listing file L option diagnostic messages have the following layout starting with the severity R remark W wa
214. rning E error C catastrophe R W E C ilename line number column_number error_message d gt For more detailed information see chapter Compiler Diagnostics All diagnostic messages are listed below B 4 7 Appendix B 2 MESSAGES 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 0013 last line incomplete last line of file ends without a newline last line_backslash last line of file ends with a backslash include recursion include file xxxx includes itself out_of_memory out of memory source_file_could_not_be_opened could not open source file xxxx comment_unclosed_at_eof comment unclosed at end of file bad_token unrecognized token unclosed string missing closing guote nested_ comment nested comment is not allowed bad use of sharp not expected here bad pp directive_keyword unrecognized preprocessing directive end of flush parsing restarts here after previous syntax error exp file name expected a file name Error Messages B 5 0014 0016 0017 0018 0019 0020 0021 0023 0024 0025 0026 0028 extra_text_in_pp_directive extra text after expected end of preprocessing directive illegal source file name xxxx is not a valid source file name exp rbracket expected a exp rparen expected a extra_chars_on_number extra text after ex
215. rror tag names and error numbers are listed in the Error Messages appendix Example When you want diagnostic error 20 to be a warning enter cp563 diag warning 20 test cc d gt Chapter Compiler Diagnostics and Appendix Error Messages 4 34 Chapter 4 display_error_number Option display_error_number Description Display the error message number in any diagnostic messages that are generated The option may be used to determine the error number to be used when overriding the severity of a diagnostic message The error numbers are listed in the Error Messages appendix Normally diagnostics are written to stderr in the following form filename line line num message With display_error_number this form will be filename line line num severity ferr _num message or filename line line num severity err_num D message If the severity may be overridden the error number will include the suffix D for discretionary otherwise no suffix will be present Example cp563 display_error_number test cc cest cc line 7 error 64 D declaration does not declare anything struct d gt Chapter Compiler Diagnostics and Appendix Error Messages Compiler Use 4 35 distinct_template_signatures Option distinct_template_signatures no_distinct_template_signatures Default distinct_template_signatures Description Control whether the signatures for template f
216. rs are detected e The last class of messages are the internal compiler errors These errors are caused by failed internal consistency checks and should never occur However if such a SYSTEM error appears please report the occurrence to TASKING using a Problem Report form Please include a diskette or tape containing a small C program causing the error By default tsw_diagnostics diagnostics are written to stderr with a form like the following test cc 23 break E 116 a break statement may only be used within a loop or switch With the command line option no_tsw_diagnostics the message appear in the following form test cc line 5 a break statement may only be used within a loop or switch break amp Note that the message identifies the file and line involved and that the source line itself with position indicated by the follows the message If there are several diagnostics in one source line each diagnostic will have the form above with the result that the text of the source line will be displayed several times with an appropriate position each time 5 4 Chapter 5 Long messages are wrapped to additional lines when necessary A configuration flag controls whether or not the string error appears i e the C compiler can be configured so that the severity string is omitted when the severity is error The command line option brief_diagnostics may be used to request a shorter form of the
217. ructor may not have its address taken dollar used in identifier dollar sign used in identifier nonconst ref init anachronism temporary used for initial value of reference to non const anachronism B 32 0427 0428 0429 0430 0432 0433 0434 0435 0436 0437 0438 0439 0440 Appendix B qualifier in member declaration qualified name is not allowed in member declaration mixed_enum_type_anachronism enumerated type mixed with another type anachronism new_array_size_must_be_nonnegative the size of an array in new must be non negative return ref init reguires_temp returning reference to local temporary enum not allowed enum declaration is not allowed gualifier dropped in ref init qualifiers dropped in binding reference of type type to initializer of type type bad_nonconst_ref_init a reference of type type not const gualified cannot be initialized with a value of type type delete_of_function_pointer a pointer to function may not be deleted bad conversion function decl conversion function must be a nonstatic member function bad template declaration scope template declaration is not allowed here exp lt D expected a lt exp_gt expected a gt missing template_param template parameter declaration is missing Error Messages B 33 0441 0442 0443 0445 0446 0447 0449 0450
218. ry attributes specified B 54 0745 0746 0747 0748 0749 0750 0751 0752 0753 0754 0755 0756 0757 Appendix B mem attrib_ignored memory attribute ignored mem attrib_may_not_precede_nested_declarator memory attribute may not be followed by a nested declarator dupl mem attrib memory attribute specified more than once dupl calling convention calling convention specified more than once type_gualifier not allowed a type gualifier is not allowed template instance already_used entity kind entity declared at line xxxx was used before its template was declared static nonstatic_with_same_param types static and nonstatic member functions with same parameter types cannot be overloaded no_prior declaration no prior declaration of entity kind entity template id not allowed a template id is not allowed class_gualified name not allowed a class gualified name is not allowed bad scope for redeclaration entity kind entity may not be redeclared in the current scope gualifier in namespace member decl gualified name is not allowed in namespace member declaration sym not a type name entity kind entity is not a type name Error Messages B 55 0758 0759 0760 0761 0762 0763 0764 0765 0766 0767 0768 0769 explicit instantiation_not in namespace_scope explicit instantiation is not allowed in the current scope
219. s B 7 0044 0045 0046 0047 0049 0050 0051 0052 0053 0054 0055 0056 0057 0058 expr_not_pointer expression must have pointer type cannot_undef_predef_macro undef may not be used on this predefined name cannot_redef_predef_macro this predefined name may not be redefined bad_macro_redef incompatible redefinition of macro entity declared at line xxxx duplicate_macro_param_name duplicate macro parameter name paste_cannot_be_first F may not be first in a macro definition paste_cannot_be_last may not be last in a macro definition exp macro_param expected a macro parameter name exp_ colon 9 expected a too_few_macro_args too few arguments in macro invocation too_many_macro_args too many arguments in macro invocation sizeof_function operand of sizeof may not be a function bad_constant_operator this operator is not allowed in a constant expression bad_pp_operator this operator is not allowed in a preprocessing expression B 8 0059 0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 0070 0071 0075 Appendix B bad_constant_function_call function call is not allowed in a constant expression bad_integral_operator this operator is not allowed in an integral constant expression integer overflow integer operation result is out of range negative shift count shift count is n
220. s could be required in the case where the licensed user was running the software on a node that subsequently crashed This situation will sometimes cause the license to remain unusable lmremove will allow the license to return to the pool of available licenses Imremove will remove all instances of user on node host on display display from usage of feature If the optional c file is specified the indicated file will be used as the license file Since removing a user s license can be disruptive execution of Imremove is restricted to users with root privileges Options c license_file Use the specified icense_file If no c option is specified Imremove looks for the environment variable LM_LICENSE_FILE in order to find the license file to use If that environment variable is not set lmremove looks for the file c flexlm license dat Windows or usr local flexlm licenses license dat UNIX d gt Imstat Flexible License Manager FLEXIm A 17 3 7 LMREREAD Name Imreread tells the license daemon to reread the license file Synopsis Imreread c icense_file Description Imreread allows the system administrator to tell the license daemon to reread the license file This can be useful if the data in the license file has changed the new data can be loaded into the license daemon without shutting down and restarting it The license administrator may want to protect th
221. s definition is not allowed namespace gualified name reguired namespace gualified name is reguired namespace name_ not allowed a namespace name is not allowed Error Messages B 53 0729 0730 0731 0732 0733 0734 0735 0736 0737 0738 0741 0742 0744 bad_combination_of_dll_attributes invalid combination of DLL attributes sym_not_a_class_template entity kind entity is not a class template array_of incomplete_type array with incomplete element type is nonstandard allocation_operator_in_namespace allocation operator may not be declared in a namespace deallocation_operator_in_namespace deallocation operator may not be declared in a namespace conflicts with using decl entity kind entity conflicts with using declaration of entity kind entity using decl conflicts_with_prev_decl using declaration of entity kind entity conflicts with entity kind entity declared at line xxxx cl_namespaces_option_only_in_cplusplus namespaces option can be used only when compiling C useless_using declaration using declaration ignored it refers to the current namespace class_qualified_name_required a class gualified name is required using declaration ignored using declaration of entity kind entity ignored not an actual member entity kind entity has no actual member xxxx mem attrib incompatible incompatible memo
222. scription Allow or disallow macros with a variable number of arguments Example cp563 variadic macros test cc d gt extended_variadic macros 4 107 4 108 version V v Option V V version Description Display version information Example cp563 V TASKING DSP563xx 6xx C compiler Copyright years Altium BV vx yrz Build nnn Serial 00000000 Chapter 4 Compiler Use 4 109 wchar_t_keyword Option wchar_t_keyword no_wchar_t keyword Default wchar_t_ keyword Description Enable or disable recognition of wchar_t as a keyword Example cp563 no_wchar_t_keyword test cc 4 110 Chapter 4 wrap diagnostics Option wrap diagnostics no_wrap diagnostics Default wrap diagnostics Description Enable or disable a mode in which the error message text is not wrapped when too long to fit on a single line Example cp563 mno_ wrap diagnostics test cc d gt brief diagnostics Chapter Compiler Diagnostics and Appendix Error Messages Compiler Use 4 111 xref X Option Xxfile xref x ile Arguments The name of the cross reference file Description Generate cross reference information in the file xfi e For each reference to an identifier in the source program a line of the form symbol_id name X file name line number column number is written where X is D for definition for declaration that is a dec
223. sed for this compilation if it is invalid i e if its prefix does not match the prefix for the current primary source file a warning will be issued and the PCH file will not be used When either of these options is used in conjunction with pch_dir the indicated file name which may be a path name is tacked on to the directory name unless the file name is an absolute path name Language Implementation 3 41 The create_pch use_pch and pch options may not be used together If more than one of these options is specified only the last one will apply Nevertheless most of the description of automatic PCH processing applies to one or the other of these modes header stop points are determined the same way PCH file applicability is determined the same way and so forth 3 7 3 OTHER WAYS TO CONTROL PRECOMPILED HEADERS There are several ways in which the user can control and or tune how precompiled headers are created and used pragma hdrstop may be inserted in the primary source file at a point prior to the first token that does not belong to a preprocessing directive It enables you to specify where the set of header files subject to precompilation ends For example finclude xxx h include yyy h pragma hdrstop include zzz h Here the precompiled header file will include processing state for xxx h and yyy h but not zzz h This is useful if the user decides that the information added by
224. sing a Problem Report form Please include a diskette or tape containing a small C program causing the error 5 6 z Chapter 5 5 3 RESPONSE TO SIGNALS The signals SIGINT caused by a user interrupt like C and SIGTERM caused by a kill command are trapped by the C compiler and cause abnormal termination 5 4 RETURN VALUES cp563 returns an exit status to the operating system environment for testing For example in a PC BATCH file you can examine the exit status of the program executed with ERRORLEVEL cp563 1 cc IF ERRORLEVEL 1 GOTO STOP _BATCH In a Bourne shell script the exit status can be found in the variable for example cp563 case in 0 echo ok 2 4 echo error esac The exit status of cp563 indicates the highest severity diagnostic detected and is one of the numbers of the following list 1 Abnormal termination 0 0 2 4 Compilation successful no errors maybe some remarks There were warnings There were user errors but terminated normally A catastrophic error premature ending FLEXIBLE LICENSE MANAGER FLEXIm all TASKING M XIGNAddV Flexible License Manager FLEXIm A 3 1 INTRODUCTION This appendix discusses Globetrotter Software s Flexible License Manager and how it is integrated into the TASKING toolchain It also contains descriptions of the Flexible License Manager license administration tools that are included wit
225. ssing dependencies M trace_includes H define_macro macro parm list zdef Dmacro parm list l zdef undefine_macro macro Umacro variadic_macros no_variadic_macros extended_variadic_macros no_extended_variadic_macros Language control options Strict ANSI C Issue errors on non ANSI features Strict ANSI C Issue warnings on non ANSI features strict A strict_warnings a 4 12 Chapter 4 Description Option Select memory model mixed static or reentrant Select default memory space X Y L or P Specify stack not in L memory only for cp56 Select memory model 24 bit 16 24 bit or 16 bit or DSP566xx Do not use hardware stack extension Select default memory space X Y L or P Specify stack not in L memory only for cp563 Compile C compatible with cfront version 2 1 Compile C compatible with cfront version 3 0 Accept dollar signs in identifiers Treat all char variables as signed Treat all char variables as unsigned Enable or disable K amp R arithmetic conversion rules for longs Make string literals const Enable or disable support for exception handling Enable the diagnostics of noncompliance with the Embedded C subset Enable or disable support for embedded C language extension keywords Enable or disable operator functions to overload builtin operators on enum typed operan
226. st of the actual compiler limits are determined by the amount of free memory in the host system In this case a D Dynamic is given between parentheses Some limits are determined by the size of the internal compiler parser stack These limits are marked with a P Although the size of this stack is 200 the actual limit can be lower and depends on the structure of the translated program e 15 nesting levels of compound statements iteration control structures and selection control structures P gt 15 e 8 nesting levels of conditional inclusion 50 e 12 pointer array and function declarators in any combinations modifying an arithmetic a structure a union or an incomplete type in a declaration 15 e 31 nesting levels of parenthesized declarators within a full declarator P gt 31 e 32 nesting levels of parenthesized expressions within a full expression P gt 32 e 31 significant characters in an external identifier full ANSI C mode 120 significant characters in an external identifier non ANSI C mode e 511 external identifiers in one translation unit D e 127 identifiers with block scope declared in one block D e 1024 macro identifiers simultaneously defined in one translation unit D e 31 parameters in one function declaration D e 31 arguments in one function call D e 31 parameters in one macro definition D e 31 arguments in one macro call D e 509 characters in a logical source line 1500
227. t limited to those names visible at the point at which the template was defined Language Implementation 3 23 e Functions from the context in which the template was referenced are considered for all function calls in the template Functions from the referencing context should only be visible for dependent function calls The lookup rules for overloaded operators are implemented as specified by the standard which means that the operator functions in the global scope overload with the operator functions declared extern inside a function instead of being hidden by them The old operator function lookup rules are used when namespaces are turned off This means a program can have different behavior depending on whether it is compiled with namespace support enabled or disabled struct A A operator A double void f A al A operator A int al 1 0 calls operator A double with namespaces enabled but otherwise calls operator A int 3 24 Chapter 3 3 5 TEMPLATE INSTANTIATION The C language includes the concept of templates A template is a description of a class or function that is a model for a family of related classes or functions For example one can write a template for a Stack class and then use a stack of integers a stack of floats and a stack of some user defined type In the source these might be written Stack lt int gt Stack lt float gt and Stack lt x gt From a sin
228. t can be overridden using the incl_suffixes command line option A null file suffix cannot be used unless it is present in the suffix list that is the C compiler will always attempt to add a suffix from the suffix list when the filename has no suffix Compiler Use 4 115 4 3 PRAGMAS According to ANSI 3 8 6 a preprocessing directive of the form pragma pragma token list new line causes the compiler to behave in an implementation defined manner The compiler ignores pragmas which are not mentioned in the list below Pragmas give directions to the code generator of the compiler Besides the pragmas there are two other possibilities to steer the code generator command line options and keywords The compiler acknowledges these three groups using the following rule Command line options can be overruled by keywords and pragmas Keywords can be overruled by pragmas So the pragma has the highest priority This approach makes it possible to set a default optimization level for a source module which can be overridden temporarily within the source by a pragma cp563 supports the following pragmas and all pragmas that are described in the C Cross Compiler User s Guide instantiate do_not instantiate can instantiate These are template instantiation pragmas They are described in detail in the section Template Instantiation in chapter Language Implementation hdrstop no_pch These are precompiled header pragmas They are d
229. t case you can copy the license dat file from the product to the licenses directory after filling in the data from your License Information Form A Be very careful not to overwrite an existing license dat file because it contains valuable data Example license dat SERVER HOSTNAME HOSTID PORT DAEMON Tasking usr local flexlm bin Tasking FEATURE SW008002 32 Tasking 3 000 EXPDATE NUSERS PASSWORD SERIAL A 6 Appendix A After modifications from a license data sheet example SERVER elliot 5100520c 7594 DAEMON Tasking usr local flexlm bin Tasking FEATURE SW008002 32 Tasking 3 000 1 jan 00 4 0B1810310210A6894 123456 If the license dat file already exists then you should make sure that it contains the DAEMON and FEATURE lines from your license data sheet An appropriate SERVER line should already be present in that case You should only add a new SERVER line if no SERVER line is present The third field of the DAEMON line is the pathname to the Tasking daemon and you may change it if necessary The default location for the license file on Windows is c flexim license dat On UNIX this is usr local flexlm licenses license dat If the pathname of the resulting license file differs from this default location then you must set the environment variable LM LICENSE_FILE to the correct pathname If you have more than one product using the FLEXlm license manager you can specify multiple license files by separating each path
230. terpret_cast and const_cast are implemented Definition of a nested class outside its enclosing class is allowed mutable is accepted on non static data member declarations Namespaces are implemented including using declarations and directives Access declarations are broadened to match the corresponding using declarations Explicit instantiation of templates is implemented The typename keyword is recognized explicit is accepted to declare non converting constructors The scope of a variable declared in the for init statement of a for loop is the scope of the loop not the surrounding scope Member templates are implemented Language Implementation 3 7 e The new specialization syntax using template lt gt is implemented e Cv dualifiers are retained on rvalues in particular on function return values e The distinction between trivial and nontrivial constructors has been implemented as has the distinction between PODs and non PODs with trivial constructors e The linkage specification is treated as part of the function type affecting function overloading and implicit conversions e extern inline functions are supported and the default linkage for inline functions is external e A typedef name may be used in an explicit destructor call e Placement delete is implemented e An array allocated via a placement new can be deallocated via delete e Covariant return types on overriding virtual f
231. the C compiler This chapter describes the C language extensions and some specific features 3 2 C LANGUAGE EXTENSION KEYWORDS The C compiler supports the same language extension keywords as the C compiler These language extensions are enabled by default embedded but you can disable them by specifying the no_embedded command line option When A is used the extensions will be disabled The following language extensions are supported additional data types In addition to the standard data types cp563 supports the fractional type _fract long fractional type long _fract enumerated type enum and complex data type _complex _at You can specify a variable to be at an absolute address _nosat You can specify a variable to wrap around instead of going into saturation during calculations storage specifiers Apart from a memory category extern static you can specify a storage specifier in each declaration This way you obtain a memory model independent addressing of variables in several address ranges _X Y _L _P near internal external The __near internal and _external modifiers can also be used on functions to force them in a specific memory region 34 Chapter 3 reentrant functions In the mixed model DSP5600x only you can selectively define functions as reentrant _reentrant keyword Reentrant functions can be invoked recursively Interrupt programs can also call reentrant
232. the end of the main routine and main has an integral return type it is treated as ifa return 0 statement were executed e Pointers to arrays with unknown bounds as parameter types are diagnosed as errors 3 6 Chapter 3 A functional notation cast of the form A can be used even if A is a class without a nontrivial constructor The temporary created gets the same default initialization to zero as a static object of the class type A cast can be used to select one out of a set of overloaded functions when taking the address of a function Template friend declarations and definitions are permitted in class definitions and class template definitions Type template parameters are permitted to have default arguments Function templates may have nontype template parameters A reference to const volatile cannot be bound to an rvalue Qualification conversions such as conversion from T toT const const are allowed Digraphs are recognized Operator keywords e g not and bitand etc are recognized Static data member declarations can be used to declare member constants wchar_t is recognized as a keyword and a distinct type bool is recognized RTTI run time type identification including dynamic_cast and the typeid operator is implemented Declarations in tested conditions in if switch for and while statements are supported Array new and delete are implemented New style casts static_cast rein
233. the environment 1 3 1 7 signals 5 6 stack 3 24 string literals const 4 29 suffix include file 4 114 symbols predefined 4 102 syntax checking 4 69 system include directory 4 97 4 114 T template 3 24 distinct signatures 4 35 guiding declarations 4 51 specialization 4 78 template instantiation 3 24 pragma directives 3 30 automatic 3 25 4 22 directory 4 60 implicit inclusion 3 33 4 53 instantiation modes 3 29 4 58 one file per object 4 80 pending 4 86 tie breakers 4 37 timing information 4 98 TMPDIR 1 4 1 7 tool chain 2 4 muncher 2 7 prelinker 2 5 type information 4 95 typename keyword 4 101 U using declaration allow unqualified name 4 73 utilities C 1 muncher C 5 prelinker C 3 Vv version information 4 108 virtual function table 4 48 4 96 W warning 5 3 warnings suppress 4 75 4 76 wchar_t keyword 4 109 Index 10 INDEX Index
234. the function itself is often guite small it must be compiled along with the declarations for the types on which the instantiation is based and those declarations can easily run into many thousands of lines For large systems these compilations can take a very long time The link step tries to be smart about recompiling instantiations only when necessary but because it keeps no fine grained dependency information it is often forced to recompile the world for a minor change in a h file In addition cfront has no way of ensuring that preprocessing symbols are set correctly when it does these instantiation compilations if preprocessing symbols are set other than on the command line Borland s C compiler instantiates everything referenced in a compilation then uses a special linker to remove duplicate definitions of instantiated functions If you are using Borland s compiler you must make sure that every compilation sees all the source code it needs to instantiate all the template entities referenced in that compilation That is one cannot refer to a template entity in a source file if a definition for that entity is not included by that source file In practice this means that either all the definition code is put directly in the h files or that each h file includes an associated cc actually cpp file This scheme is straightforward and works well for small programs For large systems however it tends to produce very large o
235. tiations assigned to a given file is recorded in the associated instantiation reguest file with by default a ii suffix The prelinker then executes the compiler again to recompile each file for which the ii file was changed The original compilation command line options saved in the template information file are used for the recompilation When the compiler compiles a file it reads the ii file for that file and obeys the instantiation requests therein It produces a new object file containing the requested template entities and all the other things that were already in the object file The prelinker repeats steps 3 5 until there are no more instantiations to be adjusted The object files are linked together Once the program has been linked correctly the ii files contain a complete set of instantiation assignments From then on whenever source files are recompiled the compiler will consult the ii files and do the indicated instantiations as it does the normal compilations That means that except in cases where the set of required instantiations changes the prelink step from then on will find that all the necessary instantiations are present in the object files and no instantiation assignment adjustments need be done That s true even if the entire program is recompiled If you provide a specialization of a template entity somewhere in the program the specialization will be seen as a definition by the prelinker Since
236. tions Example To disable support for the explicit specifier on constructor declarations enter cp563 no_explicit test cc Compiler Use 4 45 extended_variadic_macros Option extended_variadic macros no_extended_variadic macros Default no_extended_variadic macros Description Allow or disallow macros with a variable number of arguments implies variadic macros and alow or disallow the naming of the variable argument list Example cp563 extended_variadic_macros test cc d gt variadic macros 4 46 Chapter 4 extern_inline Option extern inline no_extern inline Default extern inline Description Enable or disable support for inline functions with external linkage in C When inline functions are allowed to have external linkage as required by the standard then extern and inline are compatible specifiers on a non member function declaration the default linkage when inline appears alone is external that is inline means extern inline on non member functions and an inline member function takes on the linkage of its class which is usually external However when inline functions have only internal linkage as specified in the ARM then extern and inline are incompatible the default linkage when inline appears alone is internal that is inline means static inline on non member functions and inline member functions have internal linkage no matter what the
237. to combine license files to ease administration of FLEXIm licenses It s purely a matter of preference Does FLEXlm handle dates in the year 2000 and beyond Yes The FLEXIm date format uses a 4 digit year Dates in the 20th century 19xx can be abbreviated to the last 2 digits of the year xx and use of this feature is guite widespread Dates in the year 2000 and beyond must specify all 4 year digits 6 2 FLEXLM VERSION Which FLEXlm versions does TASKING deliver For Windows we deliver FLEXlm v6 1 and for UNIX we deliver v2 4 A 38 Appendix A I have products from several companies at various FLEXlm version levels Do I have to worry about how these versions work together If you re not combining license files from different vendors the simplest thing to do is make sure you use the tools especially lmgrd that are shipped by each vendor lmgrd will always correctly support older versions of vendor daemons and applications so it s always safe to use the latest version of lImgrd and the other FLEXlm utilities If you ve combined license files from 2 vendors you must use the latest version of Imgrd If you ve received 2 versions of a product from the same vendor you must use the latest vendor daemon they sent you An older vendor daemon with a newer client will cause communication errors Please ignore letters appended to FLEXIm versions i e v2 4d The appended letter indicates a patch and does NOT indicate
238. tors in overload resolution the match of an operand of a built in type against the built in type required by the built in operator is considered a standard conversion in all cases e g even when the type is exactly right without conversion A reference to a non const type may be initialized from a value that is a const gualified version of the same type but only if the value is the result of selecting a member from a const class object or a pointer to such an object The cfront 2 1 transitional model for nested type support is simulated In the transitional model a nested type is promoted to the file scope unless a type of the same name already exists at the file scope It is an error to have two nested classes of the same name that need to be promoted to file scope or to define a type at file scope after the declaration of a nested class of the same name This feature actually restricts the source language accepted by the compiler This is necessary because of the effect this feature has on the name mangling of functions that use nested types in their signature This feature does not apply to template classes Language Implementation 3 13 e A cast to an array type is allowed it is treated like a cast to a pointer to the array element type A warning is issued e When an array is selected from a class the type qualifiers on the class object if any are not preserved in the selected array In the normal mode any type qualifi
239. tput then the license server daemon is not running See below for an example how to start lmgrd A 36 Appendix A Make sure that both license server daemon Imgrd and the program are using the same license data All TASKING products use the license file usr local flexlm licenses license dat unless overruled by the environment variable LM_LICENSE_FILE However not all existing Imgrd daemons may use the same default In case of doubt specify the license file pathname with the c option when starting the license server daemon For example lmgrd c usr local flexlm licenses license dat 1 usr local flexlm licenses license log amp and set the LM_LICENSE_FILE environment variable to the license dat pathname mentioned with the c option of Imgrd before running any license based program including lmreread lmstat Imdown If Imgrd and the program run on different hosts transparent access to the license file is assumed in the situation described above e g NFS If this is not the case make a local copy of the license file not recommended or set LM LICENSE_FILE to the form number host as described earlier If none of the above seems to apply i e lmgrd was already running and LM_LICENSE_FILE has been set correctly then it is very likely that there is a TCP port mismatch The fourth field of a SERVER line in the license file specifies a TCP port number That number can be changed wit
240. ts own but forwards these requests to other daemons the vendor daemons A computer system that is running both the license and vendor daemon software The server node will contain all the dynamic information regarding the usage of all the features An end user specific file that contains descriptions of the server nodes that can run the license daemons the various vendor daemons and the restrictions for all the licensed features The TASKING software is granted permission to run by FLEXIm daemons the daemons are started when the TASKING toolchain is installed and run continuously thereafter Information needed by the FLEXIm daemons to perform access management is contained in a license data file that is created during the toolchain installation process As part of their normal operation the daemons log their actions in a daemon log file which can be used to monitor usage of the TASKING toolchain The following sections discuss e Installation of the FLEXIm daemons to provide for access to the TASKING toolchain e Customizing your use of the toolchain through the use of a daemon options file e Utilities that are provided to assist you in performing license administration functions e The daemon log file and its contents For additional information regarding the use of FLEXIm refer to the chapter Software Installation Flexible License Manager FLEXIm A 5 2 2 PROVIDING FOR UNINTERRUPTED FLEXLM OPERATION TASKI
241. turn type bad first arg type for operator delete first parameter of deallocation function must be of type void type_must_be_object_type type must be an object type base_class_already_initialized base class type has already been initialized base_class_init_anachronism base class name required type assumed anachronism member_already_initialized entity kind entity has already been initialized missing base_class_or_member_name name of member or base class is missing assignment to this assignment to this anachronism overload_anachronism overload keyword used anachronism anon union member access invalid anonymous union nonpublic member is not allowed anon union member function invalid anonymous union member function is not allowed B 28 0365 0366 0367 0368 0369 0370 0371 0372 0373 0375 0377 0378 0379 Appendix B anon union storage class anonymous union at global or namespace scope must be declared static missing initializer_on fields entity kind entity provides no initializer for cannot initialize fields implicitly generated constructor for class type cannot initialize no ctor but const or ref member entity kind entity defines no constructor to initialize the following var_with_uninitialized_member entity kind entity has an uninitialized const
242. ty alters its access qualified_name_required a class or namespace qualified name is required implicit_int_on_main return type int omitted in declaration of function main B 70 0955 0956 0957 0958 0959 0960 0961 0962 0964 0965 0966 0967 Appendix B invalid inheritance kind for class pointer to member representation xxxx is too restrictive for entity kind entity implicit_return_from_non_void_function missing return statement at end of non void entity kind entity duplicate using decl duplicate using declaration of entity ignored unsigned enum bit field with signed enumerator enum bit fields are always unsigned but enum type includes negative enumerator cl_class_name_injection_option_only_in_cplusplus option class_name_injection can be used only when compiling C cl_arg_dependent_lookup_option_only_in_cplusplus option arg_dep_lookup can be used only when compiling C cl_friend_injection_option_only_in_cplusplus option friend injection can be used only when compiling C invalid_name_after_template name following template must be a member template local class friend reguires_prior decl nonstandard local class friend declaration no prior declaration in the enclosing scope nonstd default arg specifying a default argument on this declaration is nonstandard cl nonstd using de
243. unctions are supported e enum types are considered to be non integral types e Partial specialization of class templates is implemented e Partial ordering of function templates is implemented e Function declarations that match a function template are regarded as independent functions not as guiding declarations that are instances of the template e It is possible to overload operators using functions that take enum types and no class types e Explicit specification of function template arguments is supported e Unnamed template parameters are supported e The new lookup rules for member references of the form x A B and p gt A B are supported e The notation template and gt template etc is supported e In a reference of the form f gt g with g a static member function f is evaluated The ARM specifies that the left operand is not evaluated in such cases e enum types can contain values larger than can be contained in an int e Default arguments of function templates and member functions of class templates are instantiated only when the default argument is used in a call e String literals and wide string literals have const type 3 3 2 Chapter 3 Class name injection is implemented Argument dependent Koenig lookup of function names is implemented Class and function names declared only in unqualified friend declarations are not visible except for functions found by argument depe
244. unctions can match those for non template functions when the functions appear in different compilation units The default is distinct_template_signatures under which a normal function cannot be used to satisfy the need for a template instance e g a function void f int could not be used to satisfy the need for an instantiation of a template void f T with T set to int no_distinct_template_signatures provides the older language behavior under which a non template function can match a template function Also controls whether function templates may have template parameters that are not used in the function signature of the function template Example cp563 no_distinct_template_signatures test cc 4 36 Chapter 4 doliar Option dollar Default No dollar signs are allowed in identifiers Description Accept dollar signs in identifiers Names like ASVAR are allowed Example cp563 test cc Compiler Use 4 37 early_ tiebreaker late_tiebreaker Option early_tiebreaker late_tiebreaker Default early_tiebreaker Description Select the way that tie breakers e g cv gualifier differences apply in overload resolution In early tie breaker processing the tie breakers are considered at the same time as other measures of the goodness of the match of an argument value and the corresponding parameter type this is the standard approach In late tie breaker
245. users or on one or more host computer systems INCLUDE Specify a list of users who are allowed exclusive access to the TASKING software EXCLUDE Specify a list of users who are not allowed to use the TASKING software GROUP Specify a group of users for use in the other commands TIMEOUT Allow licenses that are idle for a specified time to be returned to the free pool for use by someone else NOLOG Causes messages of the specified type to be filtered out of the daemon s log output Table A 1 Daemon options file keywords In order to use the daemon options capability you must create a daemon options file and list its pathname as the fourth field on the DAEMON line for the Tasking daemon in the license file For example if the daemon options were in file usr local flexlm Tasking opt UNIX then you would modify the license file DAEMON line as follows DAEMON Tasking usr local Tasking usr local flexlm Tasking opt A 8 Appendix A 7 A daemon options file consists of lines in the following format RESERVE number feature USER HOST DISPLAY GROUP name INCLUDE feature USER HOST DISPLAY GROUP name EXCLUDE feature USER HOST DISPLAY GROUP name GROUP name lt list_of_users gt TIMEOUT feature timeout_in_seconds NOLOG IN OUT DENIED QUEUED REPORTLOG file Lines beginning with the sharp character are ignored and can be used as comments For example the following options file
246. y lt 50 features In v5 port host actually improves performance Flexible License Manager FLEXIm A 43 Does FLEXlm work with NFS Yes FLEXlm has no direct interaction with NFS FLEXlm uses an NFS mounted file like any other application Does FLEXIm work with ATM ISDN Token Ring etc In general these have no impact on FLEXIm FLEXIm requires TCP IP or SPX Novell Netware So long as TCP IP works FLEXIm will work Does FLEXlm work with subnets fully gualified names multiple domains etc Yes although this behavior was improved in v3 0 and v6 0 When a license server and a client are located in different domains fully qualified host names have to be used A fully gualified hostname is of the form node domain where node is the local hostname usually returned by the hostname command or uname n domain is the internet domain name e g globes com To ensure success with FLEXIm across domains do the following 1 Make the sure the fully gualified hostname is the name on the SERVER line of the license file 2 Make sure ALL client nodes as well as the server node are able to telnev to that fully gualified hostname For example if the host is locally called speedy and the domain name is corp com local systems will be able to logon to speedy via telnet speedy But very often telnet speedy corp com will fail locally Note that this telnet command will always succeed on hosts in
247. y kind entity is a pure virtual function no_overrider for pure_ virtual function pure virtual entity kind entity has no overrider decl modifiers ignored __ declspec attributes ignored invalid char invalid character in input line incomplete return type function returns incomplete type type local_pragma_pack effect of this pragma pack directive is local to entity kind entity not_a_template xxxx is not a template friend partial specialization a friend declaration may not declare a partial specialization exception specification ignored exception specification ignored unexpected type for size_t declaration of size_t does not match the expected type type exp_gt not shift right space required between adjacent gt delimiters of nested template argument lists gt gt is the right shift operator bad_multibyte_char_locale could not set locale xxxx to allow processing of multibyte characters B 64 0870 0871 0872 0873 0874 0875 0876 0877 0878 0879 0880 0881 0882 Appendix B bad_multibyte_char invalid multibyte character sequence bad_type_from_instantiation template instantiation resulted in unexpected function type of type the meaning of a name may have changed since the template declaration the type of the template is type ambiguous guiding decl ambiguous guiding declaration more than on
248. zero The declaration is treated as though no name had been declared e_ Plain bit fields i e bit fields declared with a type of int are always unsigned e The name given in an elaborated type specifier is permitted to be a typedef name that is the synonym for a class name e g typedef class A T class T pa No error in cfront mode e No warning is issued on duplicate size and sign specifiers short short int i No warning in cfront mode e Virtual function table pointer update code is not generated in destructors for base classes of classes without virtual functions even if the base class virtual functions might be overridden in a further derived class For example struct A 4 virtual void f AO O Ad L struct B public A BO O B 05 Should call A f according to ARM 12 7 struct C public B void f c In cfront compatibility mode B B calls C f e An extra comma is allowed after the last argument in an argument list as for example in a 2 e A constant pointer to member function may be cast to a pointer to function A warning is issued 3 20 Chapter 3 struct A int main int p p int A f Okay with warning Arguments of class types that allow bitwise copy construction but also have destructors are passed by value i e like C structures and the destructor is not called on the copy In normal mode the
Download Pdf Manuals
Related Search
Related Contents
cab hermes 1 - 日本電子株式会社 ARMSTRONG`S PHASE MODULATOR 取扱説明書 第 8 版 User Manual MIOe-3680 - download.advantech.com Textured cushion for keyboard cursor control stick PERSONAL RINGER Copyright © All rights reserved.
Failed to retrieve file