Development Log in categories CodePeer

  • CodePeer
    May 23rd, 2016

    Improved support for arrays with static bounds
    CodePeer now performs more accurate analysis of arrays with static bounds and has improved display of dynamically indexed array elements of such arrays.

  • CodePeer
    May 4th, 2016

    Extended support for shift intrinsics
    Support for shift intrinsics on types other than 8, 16, 32, or 64 bits is now available in CodePeer. This can be useful for e.g. legacy Ada code running on 24-bit hardware with native 24-bit integer types.

  • CodePeer
    Apr 28th, 2016

    Further improved unchecked conversion analysis
    CodePeer now knows more about unchecked conversions involving fixed point types and enumeration types.

  • CodePeer
    Apr 21st, 2016

    Better default for GPS message review dialog box
    When the "CodePeer message review" dialog box comes up in GPS, the default value for the "New status" field is no longer unconditionally "Unclassified", but is instead equal to the "Current status" field. In the case of a subsequent review of an already-classified message, this means that the default action is to preserve the current status of the message as opposed to setting the status back to "Unclassified".

  • CodePeer
    Apr 12th, 2016

    Exclude source directories from analysis
    A new project attribute Excluded_Source_Dirs in package CodePeer is available to easily exclude entire source directories from analysis.

  • CodePeer
    Apr 7th, 2016

    Creating baseline from previous runs
    It is now possible to set a previous run as the default baseline review by allowing the -baseline or -set-baseline-id switches in -output-only mode.

  • CodePeer
    Apr 7th, 2016

    Improved handling of baseline reviews
    A project now has a single baseline review, which will be used by default for all review comparisons. It can be set to the current review using the -baseline switch or set to a previous review using -set-baseline-id. Note that the default review can still be temporarily overwritten by using the -cutoff switch.

  • CodePeer
    Mar 25th, 2016

    Improved unchecked conversion analysis
    CodePeer now knows about unchecked type conversions between signed and unsigned integer types if the target subtype has basetype bounds and the source type's size is no larger than that of the target type.

  • CodePeer
    Mar 23rd, 2016

    Improved support for System.Address as pointer
    CodePeer now supports 'null' as a valid value when dealing with System.Address, to support legacy Ada compilers where System.Address is declared as a pointer.

  • CodePeer
    Mar 17th, 2016

    Improved access check messages
    CodePeer now generates more accurate messages related to access check (null dereference) messages.

  • CodePeer
    Mar 7th, 2016

    Improved analysis of loops
    CodePeer will now, in some cases, unroll loops. This leads to generally more precise analysis but may also result in messages which refer to a specific iteration of loop as described in the CodePeer User's Guide's "Loop Unrolling" section.

  • CodePeer
    Feb 20th, 2016

    Improved reference to global variables in messages
    When referencing global variables from other packages in messages or annotations, CodePeer now prepend the name of the enclosing package to avoid ambiguities and clarify which variable is involved.

  • CodePeer
    Feb 1st, 2016

    GPS: Review multiple CodePeer messages at once
    It is now possible to select multiple CodePeer messages in the GPS locations view and review all these messages at once.

  • CodePeer
    Feb 1st, 2016

    Overflow on unconstrained floating point by default
    Overflow detection on unconstrained floating point types previously required the use of the compiler switch -gnateF to be enabled. This is now the default. To revert to the previous default, a new codepeer switch is available: -no-unconstrained-fpt-overflow.

  • CodePeer
    Jan 5th, 2016

    Removal of floating point underflow detection
    CodePeer no longer generates messages related to potential floating point underflow when running at -level max. These messages generated too many false positives to be useful in practice. They are left temporarily available under the debug switch "-dbg on fpt_underflow" for compatibility.

  • CodePeer
    Dec 2nd, 2015

    New switch: -compiler-mode
    A new CodePeer switch -compiler-mode is provided to replace the use of codepeer-gprbuild -gnateC, allowing more flexiblity and in particular support for other CodePeer switches (on the command line or in the project file).

  • CodePeer
    Nov 18th, 2015

    Global inputs and outputs stored in the database
    Global inputs and outputs for every subprogram are now stored by CodePeer in the database as annotations, and displayed in the HTML, GPS, and GNATbench output as annotations in the source file.

  • CodePeer
    Oct 20th, 2015

    Improved precondition propagation
    CodePeer now allows more complex expressions to become preconditions, so performs a more precise global analysis.

  • CodePeer
    Sep 24th, 2015

    New partitioning algorithm
    CodePeer will now take into account the project file hierarchy (.gpr files) to create corresponding partitions when analyzing a large set of sources, grouping units in a more logical way.

  • CodePeer
    Sep 15th, 2015

    Improved handling of array comparisons
    CodePeer does a more precise comparison of strings and simple arrays, element by element if known. In the general case, the array comparison is now handled as a regular inlined operation rather than an unanalyzed call.

  • CodePeer
    Sep 1st, 2015

    Improved support for machine code insertions
    Machine code insertions written for use with other compilers may contain constructs which the GNAT compiler would not normally accept (e.g., uses of the "Ref" attribute in ways that are inconsistent with GNAT's definition of that implementation-defined attribute). Formerly, this would be treated as a semantic error and CodePeer would be unable to analyze the unit. Such machine code insertions are accepted now, thereby allowing analysis of the containing unit.

  • CodePeer
    Aug 18th, 2015

    Simplified analysis of predefined units & children
    The -gnatg switch is no longer needed to analyze predefined units or new child units of System (and other root units predefined in Ada).

  • CodePeer
    Jun 17th, 2015

    Integration with Jenkins
    A Jenkins plug-in is now distributed with CodePeer. It provides a Build Step to configure a run of CodePeer as part of a Jenkins build.

  • CodePeer
    May 18th, 2015

    Improved performance computing possible value sets
    A more efficient method for computing the union of a large number of sets is used. The observed performance difference is substantial in some cases involving large array aggregates with floating point element values.

  • CodePeer
    May 2nd, 2015

    Tooltips for possible values of variables
    CodePeer generates information about possible values of variables and expressions during its analysis, which is now displayed in the GPS source editor as an information tooltip.

  • CodePeer
    May 1st, 2015

    Generation of backtraces on messages
    CodePeer now generates by default detailed information about places in the source code involved in a particular check-related message, making it easier to analyze such messages and identify possible errors in the source. This extra information is displayed by GPS in a new view.

  • CodePeer
    Apr 28th, 2015

    New switch -no-presumptions
    CodePeer supports a new switch -no-presumptions to suppress generation of presumptions on unanalyzed subprogram calls. Use of this switch will generally result in additional messages being reported in the vicinity of unanalyzed calls, since assumptions about the result of such calls are no longer made. This option is implied by -level 4.

  • CodePeer
    Feb 25th, 2015

    Increase capacity for variables and initialization
    We have increased the default CodePeer capacity for number of distinct variables (including components) that can be tracked in a given subprogram from 400 to 600, and tripled the default memory capacity allowed when analyzing library-unit elaboration code, as elaboration code often includes large aggregates used to initialize global objects. This change should enable successful analysis by CodePeer of larger Ada subprograms, and Ada packages with more complex global-variable initializations.

  • CodePeer
    Feb 23rd, 2015

    Use Red/Orange/Yellow in CodePeer HTML report
    The HTML report was using Red/Yellow/Green for High/Medium/Low ranking messages. This was inconsistent with the Red/Orange/Yellow color coding used in GPS. The HTML report now uses Red/Orange/Yellow consistently for High/Medium/Low. There was no other change to the HTML output.

  • CodePeer
    Feb 18th, 2015

    Distinguish imported values of a global variable
    When the value of a global variable is used to initialize a global constant, it is possible that the value might change between when the global constant "captures" the variable's value, and when the value is subsequently fetched elsewhere in the program. CodePeer will now indicate in preconditions, postconditions, and other messages that a value of a variable was captured as part of initializing a global constant by adding a suffix on the global variable's name indicating the elaboration procedure initializing the constant. For example, "Global_Var@my_package'Elab_Spec" represents the value of Global_Var that was read by the My_Package spec elaboration procedure as part of initializing some constant declared in My_Package.

  • CodePeer
    Feb 17th, 2015

    Allow illegal comment characters
    Ada does not allow nongraphic characters (such as 16#7F#, DEL) in comments, but now CodePeer ignores this error, since some compilers do not flag this error, and it does not affect the CodePeer analysis of the code itself.

  • CodePeer
    Nov 13th, 2014

    Faster analysis of logical expressions
    CodePeer has improved the time necessary to perform the analysis of complex expressions that combine a large number of logical operators.

  • CodePeer
    Nov 7th, 2014

    Comparison to baseline in different location
    It is now possible to compare the results of an analysis to a baseline of the same project established in a different location, as long as they share the same database.

  • CodePeer
    Oct 29th, 2014

    Suppressing analysis via Annotate pragmas
    By adding "pragma Annotate (CodePeer, Skip_Analysis);" at the start of the declaration list of a subprogram body or a package body, CodePeer's analysis of selected subprogram bodies can be suppressed. This is typically done in order to improve performance. For details, see CodePeer User's Guide section 2.4 ("Running CodePeer Faster").

  • CodePeer
    Sep 29th, 2014

    New switches -show-reviews and -show-reviews-only
    A new switch -show-reviews (relevant with using -output-msg) shows the messages which have been reviewed, with their review information. -show-reviews-only is introduced and replaces the previous -show-manual-reviews switch.

  • CodePeer
    Sep 22nd, 2014

    Ability to exclude source files from analysis
    A new project attribute Excluded_Source_Files in package CodePeer is available to easily exclude source files from analysis.

  • CodePeer
    Sep 11th, 2014

    Faster processing of enumeration type data
    CodePeer has improved the analysis of very large enumeration type declarations.

  • CodePeer
    Sep 2nd, 2014

    Switch -update-scil now enabled by default
    The switch -update-scil is now the default, so can be omitted. A switch -no-update-scil is provided for compatibility with the previous default behavior in the rare cases where it is useful to separate SCIL generation from codepeer analysis. This means that a typical launch of codepeer now looks like:

      codepeer -P<project>
    

  • CodePeer
    Aug 20th, 2014

    Compiler specific libraries
    CodePeer now provides compiler specific libraries to ease analysis of Ada code used with most compilers.

  • CodePeer
    Aug 12th, 2014

    Faster generation of messages
    The generation of messages has been improved, which is particularly noticeable when lots of messages are generated.

  • CodePeer
    Aug 4th, 2014

    Support for -U and -U main_file switches
    CodePeer now supports switches -U (analyze all files from the project) and -U main_file (analyze only the closure of the specified main file) on the command line.

  • CodePeer
    Jul 17th, 2014

    Support for integer/address comparisons
    CodePeer now accepts expressions involving comparisons between System.Address and Integer values (e.g. "=", "/=", ">").

  • CodePeer
    Jul 3rd, 2014

    New checks for parameter aliasing on calls
    CodePeer now attempts to create preconditions for cases where a subprogram might have unwanted aliasing between a composite formal parameter and other parameters or global variables. This can result in messages about possible "aliasing check" violations on calls (and potentially within subprograms when preconditions aren't successfully created).

  • CodePeer
    May 29th, 2014

    New “subprogram” field in CSV output
    The CSV output now contains a new field to indicate the enclosing subprogram where the message is generated.

  • CodePeer
    May 5th, 2014

    Recognize Sqrt with a positive argument is nonzero
    CodePeer now recognizes that a call to the Sqrt (square root) function (as defined in the predefined Generic_Elementary_Functions generic package) with a positive argument will return a result greater than zero, avoiding divide-by-zero messages when the result is used as a divisor.

  • CodePeer
    Apr 11th, 2014

    Compiler-like mode
    A new switch -gnateC is introduced, providing a compiler-like behavior to analyze files one by one quickly, with no global analysis and no database. This switch should be used by calling directly codepeer-gprbuild with --codepeer -gnateC.

  • CodePeer
    Mar 27th, 2014

    Support for IEEE 754 floating point
    In previous releases, CodePeer was using infinite precision mathematical real numbers in order to analyze floating point expressions. CodePeer is now taking IEEE 754 floating point rounding into account to generate more accurate and complete messages.

  • CodePeer
    Mar 27th, 2014

    Floating point underflow detection
    CodePeer now performs analysis related to IEEE 754 floating point underflow when analyzing at maximum level (-level max or -level 4) and will generate messages about potential underflow on floating point operations.

  • CodePeer
    Feb 26th, 2014

    Support for aggregate projects
    CodePeer now supports analysis of aggregate project files.

  • CodePeer
    Feb 22nd, 2014

    New -security switch
    A new switch -security is available via the -output-msg switch to generate only messages related to security (as opposed to safety) concerns.

   1  2  3     Next »