--- proj3.8.conf 2013-08-30 14:24:34.747314200 -0400 +++ proj3.9.conf 2013-08-30 14:24:52.686651000 -0400 @@ -134,11 +134,11 @@ # On Windows, the file extension (which should be .exe or .com) for # the domain is not optional. Some examples are given below. The # range of the map is the list of 'model used' entries in the # appropriate Compilers Recognized -# [../../C_Module/CompilerModels/CompilersRecognized.html] table. -# Users can also author new compiler models in Scheme, thereby -# expanding the range. +# [doc/html/C_Module/CompilerModels/CompilersRecognized.html] +# table. Users can also author new compiler models in Scheme, +# thereby expanding the range. # # Windows default models: # COMPILER_MODELS += cl.exe -> cl # COMPILER_MODELS += cl30.exe -> cl30 @@ -462,9 +462,9 @@ # directories in this list will be intercepted. # # Notes # Set up CodeWarrior Support -# [../../C_Module/CompilerModels/CompilerModelsCodeWarrior.html] +# [doc/html/C_Module/CompilerModels/CompilerModelsCodeWarrior.html] # before basing a project on a CodeWarrior build. CodeWarrior is # supported for Windows systems only. # # This parameter is ignored by the Windows project builder GUI and @@ -498,9 +498,9 @@ # parameter will be intercepted. # # Notes # Set up CodeWarrior Support -# [../../C_Module/CompilerModels/CompilerModelsCodeWarrior.html] +# [doc/html/C_Module/CompilerModels/CompilerModelsCodeWarrior.html] # before basing a project on a CodeWarrior build. CodeWarrior is # supported for Windows systems only. # # This parameter is ignored by the Windows project builder GUI and @@ -525,9 +525,9 @@ # Tags # - BUILD_BEHAVIOR: Governs the Build/Analysis # # Type -# STk-style regular expression [../../Asides/STkRegExp.html] +# STk-style regular expression [doc/html/Asides/STkRegExp.html] # # Behavior # If a file in a compilation command has a path that matches the # regular expression, that compilation will be ignored. @@ -750,9 +750,9 @@ # Parameter AST_DEPTH_LIMIT # # Purpose # Specifies an upper bound on the depth of expression ASTs -# [../API/Descriptions/API_AST.html]. +# [doc/html/API/Descriptions/API_AST.html]. # # Tags # - ANALYSIS_BOUND: Analysis time/effort limit # @@ -803,16 +803,16 @@ # If you are using higher settings to debug source patching or # source replacement, we recommend doing the build and analysis in # separate phases: # - Set VERBOSITY to 6 and build the project with codesonar build -# [../../C_Module/Building/HookCommands.html#build]. +# [doc/html/C_Module/Building/HookCommands.html#build]. # - Use the trace information in the Native Compilation Details Log # to perform any necessary debugging, repeating the project build # as necessary. # - Once you are satisfied that the project has built correctly, # set VERBOSITY to a lower value and analyze the project with # codesonar analyze -# [../../C_Module/Building/HookCommands.html#analyze]. +# [doc/html/C_Module/Building/HookCommands.html#analyze]. #VERBOSITY = 2 @@ -828,9 +828,9 @@ # a list of build options # # Behavior # See the CodeSurfer manual, section Build Options: Summary -# [../../../../../csurf/doc/codesurfer/CodeSurfer.html#OptionsPreferences/BuildOptionsSummary.html] +# [../csurf/doc/codesurfer/CodeSurfer.html#OptionsPreferences/BuildOptionsSummary.html] # for a list of the available options. # # Notes # CodeSonar users should usually not need to change this. @@ -855,9 +855,9 @@ # a list of front-end options # # Behavior # See section Front-End Options -# [../../C_Module/CompilerModels/CsurfFrontEndOptions.html] for +# [doc/html/C_Module/CompilerModels/CsurfFrontEndOptions.html] for # descriptions of the available options. # # Notes # The += operator will actually prepend to this preference (in all @@ -882,9 +882,9 @@ # a list of front-end options # # Behavior # See section Front-End Options -# [../../C_Module/CompilerModels/CsurfFrontEndOptions.html] for +# [doc/html/C_Module/CompilerModels/CsurfFrontEndOptions.html] for # descriptions of the available options. # # Notes # To add mydir to the list of directories searched for include @@ -1069,10 +1069,10 @@ # where: # # - The delimiter '/' can be replaced by any character (except # null). -# - is a Boost regular expression [../../../../third- -# party/boost/libs/regex/doc/html/boost_regex/syntax.html] +# - is a Boost regular expression +# [http://www.boost.org/doc/libs/1_51_0/libs/regex/doc/html/boost_regex/syntax.html] # describing a pattern that could occur in the source code. The # pattern can match multiple-line substrings in the source file. # Double-quote if you want it to include leading or # trailing spaces. @@ -1082,10 +1082,10 @@ # leading or trailing spaces. # - is a process modifier, corresponding to a Boost regular # expression syntax option or flag as shown below. # -# Boost regular expression syntax_option_type [../../../../third- -# party/boost/libs/regex/doc/html/boost_regex/ref/syntax_option_type.html] +# Boost regular expression syntax_option_type +# [http://www.boost.org/doc/libs/1_51_0/libs/regex/doc/html/boost_regex/ref/syntax_option_type.html] # correspondences: # # -M no_mod_m # -S no_mod_s @@ -1105,10 +1105,10 @@ # S mod_s # T no_intervals # X mod_x # -# Boost regular expression match_flag_type [../../../../third- -# party/boost/libs/regex/doc/html/boost_regex/ref/match_flag_type.html] +# Boost regular expression match_flag_type +# [http://www.boost.org/doc/libs/1_51_0/libs/regex/doc/html/boost_regex/ref/match_flag_type.html] # correspondences: # # a match_not_bob # c match_continuous @@ -1187,10 +1187,10 @@ # Tags # - PRE_PREPROC: Operations on Un-Preprocessed Files # # Type -# SOURCE_PATTERN : Boost regular expression [../../../../third- -# party/boost/libs/regex/doc/html/boost_regex/syntax.html] +# SOURCE_PATTERN : Boost regular expression +# [http://www.boost.org/doc/libs/1_51_0/libs/regex/doc/html/boost_regex/syntax.html] # # SOURCE_REPLACEMENT : string # # SOURCE_MODIFIERS : one or modifiers as described in the entry for @@ -1313,11 +1313,11 @@ # Type # file path # # Behavior -# All process invocations inside a \c build, \c analyze, \c hook, -# \c hook-build, \c hook-html, or \c hook-start sub-command will be -# logged to the specified file. +# All process invocations inside a build, analyze, hook, \c hook- +# build, hook-html, or hook-start sub-command will be logged to the +# specified file. # # Notes # For example: # HOOK_LOG = /PATH/TO/log_file @@ -1393,9 +1393,9 @@ # Increasing this value may cause the product to exhaust available # file descriptors. Environments with low ulimits may need to # decrease this value. # -#MAX_CONCURRENT_PARSE_PROCESSES = 809 +#MAX_CONCURRENT_PARSE_PROCESSES = 582 # Parameter PROCEDURE_METRIC_TIMEOUT # # Purpose @@ -1505,10 +1505,10 @@ # analyzing it to see whether it will exhaust your license (without # actually exhausting your license). # # Dry run results are presented in an Analysis page in the Web GUI. -# See Analysis: Dry Runs [../GUI/GUI_Analysis.html#dry_runs] for -# more information. +# See Analysis: Dry Runs [doc/html/GUI/GUI_Analysis.html#dry_runs] +# for more information. # # CodeSonar does not require a license to perform a dry run. # # Mixing dry runs and analysis runs for the same .prj_files @@ -1671,9 +1671,9 @@ # Use DAEMON_SLAVES to specify how many slave processes CodeSonar # may start to service web requests. # # For more information, see the manual section on Parallelism in -# CodeSonar [../Workings/Parallelism.html]. +# CodeSonar [doc/html/Workings/Parallelism.html]. #ANALYSIS_SLAVES = Auto @@ -1741,9 +1741,9 @@ # Use MASTER_LISTEN_INTERFACE to specify the address on which the # master process will listen. # # For more information, see the manual section on Parallelism in -# CodeSonar [../Workings/Parallelism.html]. +# CodeSonar [doc/html/Workings/Parallelism.html]. #DAEMON_SLAVES = Auto @@ -1806,10 +1806,10 @@ # strikes a balance between retrying forever and giving up # immediately. # # For more information, see the manual sections on Parallelism in -# CodeSonar [../Workings/Parallelism.html] and the CodeSonar Plug- -# In API [../API/CodeSonarPlugins/PluginAPI.html]. +# CodeSonar [doc/html/Workings/Parallelism.html] and the CodeSonar +# Plug-In API [doc/html/API/CodeSonarPlugins/PluginAPI.html]. #UNIT_OF_WORK_RETRIES = 3 @@ -1833,9 +1833,9 @@ # run. If this occurs in analysis mode, the analysis will crash. # If it occurs in daemon mode, the daemon will not start and # requests will not be serviced. In both cases, there will be an # error message in the Analysis Log -# [../GUI/GUI_Log_Analysis.html]. +# [doc/html/GUI/GUI_Log_Analysis.html]. # # Notes # Examples: # MASTER_LISTEN_INTERFACE=0.0.0.0 @@ -1878,8 +1878,9 @@ # - line= # - path_listing # - procedure # - procedure_typed +# - reachable= # # and is one of: # - : (substring match, type-insensitive) # - = (exact match, type-insensitive) @@ -1908,9 +1909,9 @@ # system include files (as designated by SYSTEM_INCLUDE_PATHS) # with no user code involved. # # The remaining rule types specify constraints on various warning -# properties [../Elements/PROPERTIES_Warning.html]: +# properties [doc/html/Elements/PROPERTIES_Warning.html]: # - categories : Categories # - class : Class # - compilation_unit : Compilation Unit # - file : the full path name of Warning File @@ -1923,8 +1924,16 @@ # warning Procedure (including template instantiations, name # qualification, and argument types). If C, specifies a # constraint on the warning Procedure (so has the same behavior # as a procedure rule). +# - reachable= : whether or not the warning location is in a +# procedure that is reachable from one of the roots specified by +# REACHABILITY_ROOTS. Set to zero to specify that the rule +# applies only to unreachable warnings; or non-zero to specify +# that it applies only to reachable warnings. CodeSonar will +# issue an alert [doc/html/GUI/GUI_Alerts.html] if there are one +# or more WARNING_FILTER reachable rules, but no reachability +# roots have been specified. # # Notes # If there are two or more s in a pattern, the pattern # will be applied to warnings that match ALL of the rules. @@ -1935,18 +1944,18 @@ # checks for that class. This will generally lead to time savings. # # Example 1: Discard all warnings belonging to any class with a # LANG.MEM.* mnemonic -# [../WarningClasses/MnemonicHierarchy.html#LANG_MEM]. +# [doc/html/WarningClasses/MnemonicHierarchy.html#LANG_MEM]. # WARNING_FILTER = discard categories:LANG.MEM # # Example 2: Discard all warnings whose class is Buffer Overrun, # Type Overrun, or any user-defined class with "underrun" in its # name. # WARNING_FILTER = discard class:underrun # # Example 3: Discard all warnings in the compilation unit -# [../Elements/PROPERTIES_File.html#compilation_unit_def] +# [doc/html/Elements/PROPERTIES_File.html#compilation_unit_def] # associated with mylib.cpp # WARNING_FILTER = discard compilation_unit=mylib.cpp # # Example 4: Assign all warnings in file mylib.h to alex. If the @@ -1991,14 +2000,21 @@ # in a procedure with exactly one, unsigned int, argument. In C # compilation units, this rule will not match anything. # WARNING_FILTER = discard procedure_typed:"(unsigned int)" # +# Example 12: Discard all warnings in procedures that are not +# reachable from main() (this REACHABILITY_ROOTS rule matches any +# function called main occurring in any file in the project). +# REACHABILITY_ROOTS += :main +# WARNING_FILTER = discard reachable=0 +# # The following checks are enabled by default. To discard warnings # of a particular class, use the corresponding "discard" rule. # WARNING_FILTER += discard class="Blocking in Critical Section" # WARNING_FILTER += discard class="Buffer Overrun" # WARNING_FILTER += discard class="Buffer Underrun" # WARNING_FILTER += discard class="Cast Alters Value" +# WARNING_FILTER += discard class="Coercion Alters Value" # WARNING_FILTER += discard class="Dangerous Function" # WARNING_FILTER += discard class="Dangerous Function Cast" # WARNING_FILTER += discard class="Deadlock" # WARNING_FILTER += discard class="Division By Zero" @@ -2046,15 +2062,11 @@ # WARNING_FILTER += discard class="Use After Close" # WARNING_FILTER += discard class="Use After Free" # WARNING_FILTER += discard class="Use of crypt" # WARNING_FILTER += discard class="Use of gets" -# WARNING_FILTER += discard class="Use of getwd" -# WARNING_FILTER += discard class="Use of LoadModule" # WARNING_FILTER += discard class="Use of mktemp" -# WARNING_FILTER += discard class="Use of realpath" # WARNING_FILTER += discard class="Use of tmpfile" # WARNING_FILTER += discard class="Use of tmpnam" -# WARNING_FILTER += discard class="Use of WinExec" # WARNING_FILTER += discard class="Useless Assignment" # WARNING_FILTER += discard class="Varargs Function Cast" # # The following checks are disabled by default. To enable checks @@ -2113,14 +2125,15 @@ # WARNING_FILTER += allow class="Use of longjmp" # WARNING_FILTER += allow class="Use of setjmp" # WARNING_FILTER += allow class="Variadic Macro" # -# To enable all Power of Ten [../WarningClasses/Pow10Checks.html] -# checks: +# To enable all Power of Ten +# [doc/html/WarningClasses/Pow10Checks.html] checks: # WARNING_FILTER += allow categories:POW10 # BUILD_OPTIONS += -retain-unnormalized-c-ast yes # -# To enable all JPL [../WarningClasses/JPLChecks.html] checks: +# To enable all JPL [doc/html/WarningClasses/JPLChecks.html] +# checks: # WARNING_FILTER += allow categories:JPL # BUILD_OPTIONS += -retain-unnormalized-c-ast yes # # To discard integer overflow warnings that occur entirely within @@ -2146,10 +2159,9 @@ # Functions # # Type # - BAD_FUNCTION_REGEX: Boost regular expression -# [../../../../third- -# party/boost/libs/regex/doc/html/boost_regex/syntax.html] +# [http://www.boost.org/doc/libs/1_51_0/libs/regex/doc/html/boost_regex/syntax.html] # - BAD_FUNCTION_MESSAGE: string # - BAD_FUNCTION_CATEGORIES: string # - BAD_FUNCTION_RANK: number # - BAD_FUNCTION_INFO: string @@ -2167,9 +2179,9 @@ # empty string. # - BAD_FUNCTION_RANK is the rank assigned to the warning, with # default 15.0. # - BAD_FUNCTION_INFO will be used in the warning description box -# [../GUI/GUI_Warning_Report.html#endbox] sentence 'Use of +# [doc/html/GUI/GUI_Warning_Report.html#endbox] sentence 'Use of # [funcname()] is not recommended because ...'. The default value # is "it is correlated with security or safety problems." Use # to delimit paragraphs. Use linktext to link "linktext" to linkURL. @@ -2177,9 +2189,9 @@ # Values beginning with "#' are interpreted relative to the # CodeSonar manual root. If a value is specified, CodeSonar will # append 'See here for more information.' to # the text in the warning description box -# [../GUI/GUI_Warning_Report.html#endbox]. If no value is +# [doc/html/GUI/GUI_Warning_Report.html#endbox]. If no value is # specified, and BAD_FUNCTION_INFO is also not specified, # CodeSonar will look for a category beginning with "BADFUNC" in # the BAD_FUNCTION_CATEGORIES list. If there is such a category, # CodeSonar will add the "See here..." sentence with a link to @@ -2236,11 +2248,12 @@ # will not match ANY use of myfunc() in this compilation unit. # # To inspect the function signature strings that CodeSonar will be # matching BAD_FUNCTION_REGEX expressions against, use the -# CodeSonar Plug-In API [../API/CodeSonarPlugins/PluginAPI.html] to -# write a plug-in that traverses the PDGs of the project, getting -# the function ABS_LOC for each and then printing its name. +# CodeSonar Plug-In API +# [doc/html/API/CodeSonarPlugins/PluginAPI.html] to write a plug-in +# that traverses the PDGs of the project, getting the function +# ABS_LOC for each and then printing its name. # # The $str$Class_Name form used in some of the BAD_FUNCTION_MESSAGE # factory settings is for internal GrammaTech use. Do not imitate # this format: specify plain class names as shown in the examples @@ -2328,9 +2341,9 @@ # PLUGINS += /tmp/fname.bundle # PLUGINS += c:\Documents and Settings\Bob\Desktop\fname.dll # # For more information about CodeSonar plug-ins, see CodeSonar -# Plug-In API [../API/CodeSonarPlugins/PluginAPI.html]. +# Plug-In API [doc/html/API/CodeSonarPlugins/PluginAPI.html]. # Parameter REPORT_IMPLIED_EQUALITY # @@ -2456,10 +2469,11 @@ # an extra process hanging around doing nothing on the analysis # machine. The default setting is 30 minutes ( = 1800 seconds). # # The analysis log will not be finalized, and so the Analysis Log -# [../GUI/GUI_Log_Analysis.html] contents may continue to change, -# until the analysis daemon times out (or is properly shut down). +# [doc/html/GUI/GUI_Log_Analysis.html] contents may continue to +# change, until the analysis daemon times out (or is properly shut +# down). # #DAEMON_TIMEOUT = 1800 @@ -2495,11 +2509,11 @@ # an extra process hanging around doing nothing on the analysis # machine. The default setting is 30 minutes ( = 1800 seconds). # # The analysis log will not be finalized, and so the Analysis Log -# [../GUI/GUI_Log_Analysis.html] page contents may continue to -# change, until the analysis daemon times out (or is properly shut -# down). +# [doc/html/GUI/GUI_Log_Analysis.html] page contents may continue +# to change, until the analysis daemon times out (or is properly +# shut down). # #FOREGROUND_DAEMON_TIMEOUT = 5 @@ -3156,12 +3170,12 @@ # # Purpose # Specifies whether or not the analysis should report all members # of each warning group -# [../Elements/PROPERTIES_Warning.html#group_def] detected (as -# opposed to a single representative instance -# [../Elements/PROPERTIES_Warning.html#representative_def] per -# group). +# [doc/html/Elements/PROPERTIES_Warning.html#group_def] detected +# (as opposed to a single representative instance +# [doc/html/Elements/PROPERTIES_Warning.html#representative_def] +# per group). # # Tags # - WARNING_TUNING: Fine Tuning for Warnings # @@ -3169,12 +3183,13 @@ # {Yes, No} # # Behavior # - Yes : the analysis will report every warning instance -# [../Elements/PROPERTIES_Warning.html#instance_def] detected. +# [doc/html/Elements/PROPERTIES_Warning.html#instance_def] +# detected. # - No : the analysis will report one warning instance -# [../Elements/PROPERTIES_Warning.html#instance_def] per warning -# group detected. +# [doc/html/Elements/PROPERTIES_Warning.html#instance_def] per +# warning group detected. # #REPORT_SIMILAR_WARNINGS = Yes @@ -3477,10 +3492,10 @@ # Functions # - WC_LANG.FUNCS.IRV: Used by Ignored Return Value # # Type -# Boost regular expression [../../../../third- -# party/boost/libs/regex/doc/html/boost_regex/syntax.html] +# Boost regular expression +# [http://www.boost.org/doc/libs/1_51_0/libs/regex/doc/html/boost_regex/syntax.html] # # Behavior # If the name of a called function matches a # RETURN_CHECKER_CHECKED_FUNCS regular expression and the return @@ -3493,9 +3508,9 @@ # # Notes # This parameter replaces the csonar_return_check() function # previously available in the Extension API -# [../Extensions/Extensions.html]. +# [doc/html/Extensions/Extensions.html]. # #RETURN_CHECKER_CHECKED_FUNCS += ^access$ #RETURN_CHECKER_CHECKED_FUNCS += ^bind$ @@ -3646,10 +3661,10 @@ # Functions # - WC_LANG.FUNCS.IRV: Used by Ignored Return Value # # Type -# Boost regular expression [../../../../third- -# party/boost/libs/regex/doc/html/boost_regex/syntax.html] +# Boost regular expression +# [http://www.boost.org/doc/libs/1_51_0/libs/regex/doc/html/boost_regex/syntax.html] # # Behavior # If the name of a called function matches a # RETURN_CHECKER_IGNORED_FUNCS regular expression and the return @@ -3662,9 +3677,9 @@ # # Notes # This parameter replaces the csonar_ignore_return() function # previously available in the Extension API -# [../Extensions/Extensions.html]. +# [doc/html/Extensions/Extensions.html]. # #RETURN_CHECKER_IGNORED_FUNCS += ^strchr$ #RETURN_CHECKER_IGNORED_FUNCS += ^strlen$ @@ -3739,10 +3754,10 @@ # A string of the form # , # where: # - is an argument position (counting from 1) -# - is a Boost regular expression [../../../../third- -# party/boost/libs/regex/doc/html/boost_regex/syntax.html] +# - is a Boost regular expression +# [http://www.boost.org/doc/libs/1_51_0/libs/regex/doc/html/boost_regex/syntax.html] # # Behavior # Calling a function whose name matches without a format # string in the 'th parameter position will always trigger a @@ -3755,16 +3770,15 @@ # # Notes # This parameter replaces the csonar_format_string_check() function # previously available in the Extension API -# [../Extensions/Extensions.html]. +# [doc/html/Extensions/Extensions.html]. # #FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, ^__eprintf$ #FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, ^_cprintf$ #FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, ^_swprintf$ #FORMAT_STRING_CHECKER_CHECKED_FUNCS += 3, ^_v?snw?printf$ -#FORMAT_STRING_CHECKER_CHECKED_FUNCS += 4, ^_v?snw?printf_s$ #FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, ^fwprintf$ #FORMAT_STRING_CHECKER_CHECKED_FUNCS += 3, ^sn?wprintf$ #FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, ^v?w?printf$ #FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, ^v?[fs]printf$ @@ -3805,10 +3819,10 @@ # A string of the form # , # where: # - is an argument position (counting from 1) -# - is a Boost regular expression [../../../../third- -# party/boost/libs/regex/doc/html/boost_regex/syntax.html] +# - is a Boost regular expression +# [http://www.boost.org/doc/libs/1_51_0/libs/regex/doc/html/boost_regex/syntax.html] # # Behavior # Calling a function whose name matches without a format # string in the 'th parameter position will not trigger a @@ -3821,9 +3835,9 @@ # # Notes # This parameter replaces the csonar_ignore_format_string() # function previously available in the Extension API -# [../Extensions/Extensions.html]. +# [doc/html/Extensions/Extensions.html]. # #FORMAT_STRING_CHECKER_IGNORED_FUNCS += 3, ^strftime$ @@ -3866,10 +3880,10 @@ # Tags # - WC_CONCURRENCY.DATARACE: Used by Data Race # # Type -# Boost regular expression [../../../../third- -# party/boost/libs/regex/doc/html/boost_regex/syntax.html] +# Boost regular expression +# [http://www.boost.org/doc/libs/1_51_0/libs/regex/doc/html/boost_regex/syntax.html] # # Behavior # The data race analysis checks all global variables and procedure # names to see if they match one of the specified patterns. No data @@ -3898,10 +3912,10 @@ # Tags # - WC_CONCURRENCY.DATARACE: Used by Data Race # # Type -# Boost regular expression [../../../../third- -# party/boost/libs/regex/doc/html/boost_regex/syntax.html] +# Boost regular expression +# [http://www.boost.org/doc/libs/1_51_0/libs/regex/doc/html/boost_regex/syntax.html] # # Behavior # The analysis engine checks all procedures and methods to see if # they match one of the specified patterns. Matching procedures are @@ -3929,10 +3943,10 @@ # Functions # - WC_CONCURRENCY.DATARACE: Used by Data Race # # Type -# Boost regular expression [../../../../third- -# party/boost/libs/regex/doc/html/boost_regex/syntax.html] +# Boost regular expression +# [http://www.boost.org/doc/libs/1_51_0/libs/regex/doc/html/boost_regex/syntax.html] # # Behavior # If an object (or object reference) is used in a location where a # thread entry point procedure is expected, CodeSonar will scan the @@ -3953,9 +3967,10 @@ # # To specify that an arbitrary function provides a thread entry # point, you will need to write a model for that function. See the # manual section on concurrency models -# [../C_Module/LibraryModels/ConcurrencyModels.html] for details. +# [doc/html/C_Module/LibraryModels/ConcurrencyModels.html] for +# details. # # Example rule: # THREAD_ENTRY_METHOD_NAMES += ^Main$ #THREAD_ENTRY_METHOD_NAMES += ^run$ @@ -3971,10 +3986,10 @@ # - WARNING_SPECIAL_FUNCTIONS: Designates Specially-Treated # Functions # # Type -# Boost regular expression [../../../../third- -# party/boost/libs/regex/doc/html/boost_regex/syntax.html] +# Boost regular expression +# [http://www.boost.org/doc/libs/1_51_0/libs/regex/doc/html/boost_regex/syntax.html] # # Behavior # The analysis will treat all functions whose names match patterns # in SEMOPEN_FUNCTIONS as semaphore-opening functions. The analysis @@ -3989,9 +4004,9 @@ # the CodeSonar analysis correctly associates these properties with # f(). # # For more information, see the manual section on concurrency -# models [../C_Module/LibraryModels/ConcurrencyModels.html]. +# models [doc/html/C_Module/LibraryModels/ConcurrencyModels.html]. # # Example rules: # SEMOPEN_FUNCTIONS += ^semOpen$ # SEMOPEN_FUNCTIONS += ^sem_open$ @@ -4000,10 +4015,10 @@ # Parameter LOCK_FUNCTIONS # # Purpose # Used by the CONCURRENCY.LOCK.* checks -# [../WarningClasses/MnemonicHierarchy.html#CONCURRENCY_LOCK] to -# identify functions that should be treated as if they directly +# [doc/html/WarningClasses/MnemonicHierarchy.html#CONCURRENCY_LOCK] +# to identify functions that should be treated as if they directly # acquire locks. # # Tags # - WARNING_SPECIAL_FUNCTIONS: Designates Specially-Treated @@ -4011,10 +4026,10 @@ # - WC_CONCURRENCY.LOCK.NOLOCK: Used by Missing Lock Acquisition # - WC_CONCURRENCY.LOCK.NOUNLOCK: Used by Missing Lock Release # # Type -# Boost regular expression [../../../../third- -# party/boost/libs/regex/doc/html/boost_regex/syntax.html] +# Boost regular expression +# [http://www.boost.org/doc/libs/1_51_0/libs/regex/doc/html/boost_regex/syntax.html] # # Behavior # The analysis will treat all functions whose names match patterns # in LOCK_FUNCTIONS as lock-acquiring functions. The analysis @@ -4050,9 +4065,9 @@ # acquirers do not need to be specified with LOCK_FUNCTIONS: they # will automatically be treated correctly. # # For more information, see the manual section on concurrency -# models [../C_Module/LibraryModels/ConcurrencyModels.html]. +# models [doc/html/C_Module/LibraryModels/ConcurrencyModels.html]. # # Example rule: # LOCK_FUNCTIONS += ^my_lock_wrapper$ @@ -4060,10 +4075,10 @@ # Parameter UNLOCK_FUNCTIONS # # Purpose # Used by the CONCURRENCY.LOCK.* checks -# [../WarningClasses/MnemonicHierarchy.html#CONCURRENCY_LOCK] to -# identify functions that should be treated as if they directly +# [doc/html/WarningClasses/MnemonicHierarchy.html#CONCURRENCY_LOCK] +# to identify functions that should be treated as if they directly # release locks. # # Tags # - WARNING_SPECIAL_FUNCTIONS: Designates Specially-Treated @@ -4071,10 +4086,10 @@ # - WC_CONCURRENCY.LOCK.NOLOCK: Used by Missing Lock Acquisition # - WC_CONCURRENCY.LOCK.NOUNLOCK: Used by Missing Lock Release # # Type -# Boost regular expression [../../../../third- -# party/boost/libs/regex/doc/html/boost_regex/syntax.html] +# Boost regular expression +# [http://www.boost.org/doc/libs/1_51_0/libs/regex/doc/html/boost_regex/syntax.html] # # Behavior # The analysis will treat all functions whose names match patterns # in UNLOCK_FUNCTIONS as lock-releasing functions. The analysis @@ -4112,9 +4127,9 @@ # releasers do not need to be specified with UNLOCK_FUNCTIONS: they # will automatically be treated correctly. # # For more information, see the manual section on concurrency -# models [../C_Module/LibraryModels/ConcurrencyModels.html]. +# models [doc/html/C_Module/LibraryModels/ConcurrencyModels.html]. # # Example rule: # UNLOCK_FUNCTIONS += ^my_unlock_wrapper$ @@ -4137,11 +4152,11 @@ # used by the analysis. # # Notes # This only affects the analysis for CONCURRENCY.LOCK.* checks -# [../WarningClasses/MnemonicHierarchy.html#CONCURRENCY_LOCK]. It -# is quite unusual for this limit to be reached. However, if it is -# set to a very high number (for example, more than 200,000) +# [doc/html/WarningClasses/MnemonicHierarchy.html#CONCURRENCY_LOCK]. +# It is quite unusual for this limit to be reached. However, if it +# is set to a very high number (for example, more than 200,000) # CodeSonar may behave unpredictably or crash. # ## LOCK_MAX_PENDING_WARNINGS_PER_PROCEDURE = 1000 @@ -4233,10 +4248,10 @@ # non-negative integer # # Behavior # CodeSonar will issue a Function Too Long warning for functions -# whose Lines With Code [../Metrics/Metrics.html#LCode] exceeds -# this value. +# whose Lines With Code [doc/html/Metrics/Metrics.html#LCode] +# exceeds this value. # # Notes # Note that the Function Too Long check is disabled by default: use # a WARNING_FILTER rule to enable it. @@ -4308,10 +4323,10 @@ # - WC_LANG.FUNCS.ASSERTS: Used by Not Enough Assertions # # Behavior # CodeSonar will only check the number of assertions in functions -# whose Lines With Code [../Metrics/Metrics.html#LCode] exceeds -# this value. +# whose Lines With Code [doc/html/Metrics/Metrics.html#LCode] +# exceeds this value. # # Notes # Note that the Not Enough Assertions check is disabled by default: # use a WARNING_FILTER rule to enable it. @@ -4422,10 +4437,10 @@ # Tags # - WC_LANG.STRUCT.PIT: Used by Pointer Type Inside Typedef # # Type -# Boost regular expression [../../../../third- -# party/boost/libs/regex/doc/html/boost_regex/syntax.html] +# Boost regular expression +# [http://www.boost.org/doc/libs/1_51_0/libs/regex/doc/html/boost_regex/syntax.html] # # Behavior # Pointer Type Inside Typedef warnings will not be issued for # typedefs whose type name matches a regular expression in the @@ -4666,10 +4681,10 @@ # A string of the form # , # where: # - is the maximum allowable depth, in bytes. -# - is a Boost regular expression [../../../../third- -# party/boost/libs/regex/doc/html/boost_regex/syntax.html] +# - is a Boost regular expression +# [http://www.boost.org/doc/libs/1_51_0/libs/regex/doc/html/boost_regex/syntax.html] # # Behavior # If the stack depth of the module entry point exceeds the module's # threshold, CodeSonar will issue a Excessive Stack Depth warning. @@ -4957,8 +4972,30 @@ # #FLOAT_IS_ADVERSARIAL = No +# Parameter PRETEND_FLOAT_IS_INT +# +# Purpose +# Specifies whether the analysis should treat floating point typed +# values as integral typed values. +# +# Type +# {Yes, No} +# +# Behavior +# The analysis normally ignores floating point values in order to +# avoid producing false positives. This setting will cause the +# analysis to treat floating point values as if they are signed +# integers of equivalent size. +# +# Notes +# The "No" setting is recommended. Using this and +# FLOAT_IS_ADVERSARIAL at the same time is probably not useful. +# +#PRETEND_FLOAT_IS_INT = No + + # Parameter INFER_CONST # # Purpose # Specifies whether to treat globals and statics as const if they @@ -5103,10 +5140,10 @@ # Parameter METRIC_FILTER # # Purpose -# Allows metrics [../Metrics/Metrics.html] to be turned on/off, -# either for an entire metric class or for specific files, +# Allows metrics [doc/html/Metrics/Metrics.html] to be turned +# on/off, either for an entire metric class or for specific files, # procedures, or compilation units. # # Tags # - METRIC: metric-related @@ -5144,11 +5181,11 @@ # If there are two or more s in a pattern, the pattern # will be applied to metrics that match ALL of the rules. # # procedure rules match against the cs_pdg_friendly_name() -# [../API/CAPI/cs__pdg_8h.html#func_cs_pdg_friendly_name]; +# [doc/html/API/CAPI/cs__pdg_8h.html#func_cs_pdg_friendly_name]; # procedure_typed rules match against the cs_pdg_procedure_name() -# [../API/CAPI/cs__pdg_8h.html#func_cs_pdg_procedure_name]. +# [doc/html/API/CAPI/cs__pdg_8h.html#func_cs_pdg_procedure_name]. # # If you want to compute any of the Halstead metrics (n1, N1, n2, # N2, D, I, T, E, N, L, V), set # BUILD_OPTIONS += -retain-unnormalized-c-ast yes @@ -5195,11 +5232,11 @@ # Parameter METRIC_DERIVED_DEF # # Purpose -# Creates new derived metrics [../Metrics/Metrics.html], which are -# computed by mathematically manipulating values of already -# existing metrics. +# Creates new derived metrics [doc/html/Metrics/Metrics.html], +# which are computed by mathematically manipulating values of +# already existing metrics. # # Tags # - METRIC: metric-related # @@ -5267,9 +5304,9 @@ # will be computed and displayed for the next analysis unless it is # discarded via METRIC_FILTER. # # If there is an error in the specification of METRIC_DERIVED_DEF, -# CodeSonar will issue an alert [../GUI/GUI_Alerts.html] that +# CodeSonar will issue an alert [doc/html/GUI/GUI_Alerts.html] that # specifies the nature of the problem. # # Notes # If a derived metric which is enabled refers to a metric which is @@ -5638,10 +5675,10 @@ # Tags # - WC_LANG.STRUCT.ULOOP: Used by Potential Unbounded Loop # # Type -# Boost regular expression [../../../../third- -# party/boost/libs/regex/doc/html/boost_regex/syntax.html] +# Boost regular expression +# [http://www.boost.org/doc/libs/1_51_0/libs/regex/doc/html/boost_regex/syntax.html] # # Behavior # If the line the loop condition is at matches this regular # expression, a Potential Unbounded Loop warning will not be @@ -5682,10 +5719,10 @@ # - WC_ALLOC.POSTINIT: Used by Dynamic Allocation After # Initialization # # Type -# Boost regular expression [../../../../third- -# party/boost/libs/regex/doc/html/boost_regex/syntax.html] +# Boost regular expression +# [http://www.boost.org/doc/libs/1_51_0/libs/regex/doc/html/boost_regex/syntax.html] # # Behavior # The Dynamic Allocation After Initialization check will trigger a # warning if there is a call chain from a program entry point to an @@ -5719,10 +5756,10 @@ # - WC_ALLOC.POSTINIT: Used by Dynamic Allocation After # Initialization # # Type -# Boost regular expression [../../../../third- -# party/boost/libs/regex/doc/html/boost_regex/syntax.html] +# Boost regular expression +# [http://www.boost.org/doc/libs/1_51_0/libs/regex/doc/html/boost_regex/syntax.html] # # Behavior # For the Dynamic Allocation After Initialization check, calls to # functions matching this regular expression are reported unless: @@ -5758,10 +5795,10 @@ # - WC_ALLOC.POSTINIT: Used by Dynamic Allocation After # Initialization # # Type -# Boost regular expression [../../../../third- -# party/boost/libs/regex/doc/html/boost_regex/syntax.html] +# Boost regular expression +# [http://www.boost.org/doc/libs/1_51_0/libs/regex/doc/html/boost_regex/syntax.html] # # Behavior # No Dynamic Allocation After Initialization warnings are issued # for allocators (as specified by ALLOCATOR_FUNCTIONS) called @@ -5792,10 +5829,10 @@ # Functions # - WC_LANG.FUNCS.ASSERTS: Used by Not Enough Assertions # # Type -# Boost regular expression [../../../../third- -# party/boost/libs/regex/doc/html/boost_regex/syntax.html] +# Boost regular expression +# [http://www.boost.org/doc/libs/1_51_0/libs/regex/doc/html/boost_regex/syntax.html] # # Behavior # Calls to functions matching this regular expression are counted # as assertions. @@ -5896,8 +5933,9 @@ #SYSTEM_INCLUDE_PATHS += /System/Library/ #SYSTEM_INCLUDE_PATHS += /opt/local/include/ #SYSTEM_INCLUDE_PATHS += /sw/include/ #SYSTEM_INCLUDE_PATHS += /usr/llvm-gcc- +#SYSTEM_INCLUDE_PATHS += codesonar_classfile_summaries # Parameter VISUALIZATION # @@ -6009,9 +6047,9 @@ # With ASSUME_UNDEFINED_PARAMETERS_MAYBE_FREED=Yes, CodeSonar # assumes that... # - ...the call to g(p) in funcA frees p : no Leak warning, # - ...the call to g(p) in funcB does not free p : no Use After -# Free warning, +# Free warning,e.g. # # With ASSUME_UNDEFINED_PARAMETERS_MAYBE_FREED=No, CodeSonar must # treat both calls to g(p) as if they do not free p. # - funcA has a Leak warning, @@ -6037,15 +6075,68 @@ #ASSUME_OTHER_PARAMETERS_MAYBE_FREED = Yes #ASSUME_OTHER_PARAMETERS_MAYBE_INITIALIZED = Yes #ASSUME_OTHER_PARAMETERS_MAYBE_MODIFIED = Yes + +# Parameter REACHABILITY_ROOTS +# +# Purpose +# Specifies the procedures from which reachability information is +# computed for interpreting WARNING_FILTER reachable rules. +# +# Type +# Procedure, as a string of the form "file:procedure" or +# "file:linenum". +# +# Behavior +# fname:XXXX is interpreted as follows. +# - fname matches every file whose full path name has fname as a +# suffix. Empty fname matches all files in the project. +# - XXXX must be nonempty. If it is an integer, it is treated as a +# line number and matches every procedure whose definition +# includes line XXXX. Otherwise, it matches every procedures +# whose cs_pdg_friendly_name() +# [doc/html/API/CAPI/cs__pdg_8h.html#func_cs_pdg_friendly_name] +# is exactly XXXX. +# +# For example, all of the following will match procedure main() in +# file /home/me/myproject/src/main.c +# REACHABILITY_ROOTS += :main +# REACHABILITY_ROOTS += main.c:main +# REACHABILITY_ROOTS += /main.c:main +# REACHABILITY_ROOTS += myproject/src/main.c:main +# +# CodeSonar will generate +# - an alert [doc/html/GUI/GUI_Alerts.html] for each +# REACHABILITY_ROOTS rule that does not match at least one +# procedure in the project. +# - an alert [doc/html/GUI/GUI_Alerts.html] if there are one or +# more WARNING_FILTER reachable rules, but no reachability roots +# have been specified. This includes the case where +# REACHABILITY_ROOTS rules exist but none of the rules matches a +# procedure. +# - a Analysis Log [doc/html/GUI/GUI_Log_Analysis.html] message for +# each REACHABILITY_ROOTS rule that matches more than one +# procedure (these are permitted, but are logged in case they +# were not have been intentional). +# +# Notes +# By default, the set of REACHABILITY_ROOTS is empty. +# +# For a typical simple C program, we are only interested in +# reachability from main(), and consider any procedure that is not +# [transitively] called by main() to be unreachable. For example: +# REACHABILITY_ROOTS += main.c:main +# + + # Parameter EXTRA_COMPILATION_UNITS # # Purpose # Specifies extra compilation units to be added to every CodeSonar # project. In particular, use this parameter to include custom # checks written with the Extension API -# [../Extensions/Extensions.html]. +# [doc/html/Extensions/Extensions.html]. # # Type # Space-separated list of strings, each representing the full path # to a .c file.