Goanna Studio 2.1

Goanna Studio 2.0 has been a great hit, we have gotten a lot of positive feedback and we have also acted on very nearly all suggestions and bug reports to produce a shiny new Goanna Studio update 2.1. This means that a great many false positives have been eliminated, greater accuracy has been achieved and we have also fixed some bugs and there is even a performance improvement or two.

The fixed false positives and changes to checks include:

  • ATH-sizeof-by-sizeof – a false positive involving array sizeofs has been fixed.
  • FPT-cmp-null – a false negative when warning about using a function pointer directly in a condition, not using a condition operator.
  • RED-unused-var-all now considers sizeof(x) to be a use of x.
  • MEM-stack-global, MEM-stack-param and MEM-stack-param-ref now take into account re-assignments for globals or parameters
  • SPC-uninit-struct now considers a struct with a field which is an array to be accessible without warning.
  • ATH-cmp-unsigned-pos and ATH-cmp-unsigned-neg take into account comparisons with (unsigned)-1
  • MEM-free-some doesn’t warn when you check the result of a malloc and exit (or return) if it is invalid
  • RED-dead no longer warns about goto’s and breaks
  • PTR-null-const-pos doesn’t warn about string literals
  • EXP-null-stmt no longer warns about a non-empty else block or when there is an assignment or function call in the condition
  • SEM-nonconst-call has been renamed to SEM-const-call
  • SEM-global-write has been renamed to SEM-pure-global
  • SEM-impure-call has been renamed to SEM-pure-call
  • ATH-shift-bounds now warns when you shift by 64
  • COP-assign-op-ret now warns about assignment operators that do not return a non-const reference to this

The Goanna Studio for Visualstudio also has some improvements and bug fixes:

  • Support for additional options and CL environment variable support.
  • Fixed bug involving a non Win32 or Win64 build target and the verbose flag
  • Support for environmnent variables with non-alphabetic characters
  • ProjectDir and SolutionDir macros now expand with a trailing backslash

We’ve also worked hard to squeeze even more performance where we can, and overall the Goanna analysis engine now scales better with the number of checks that are being used, and Interprocedural analysis is now slightly faster.

Other minor improvements and bug fixes are:

  • Better handling of types that have been typedef’ed
  • Better handling of implicit this parameter in member functions
  • Better handling of simple conditions containing only variables
  • Better identification of compound declarations
  • Better handling of throw and catch statements
  • Support for -std=gnu++0x and -std=c++0x command line arguments
  • Improved support for c++0x standard (still incomplete)
  • With Goanna Central Linux – ability to use specific rc files
  • Goannacc now correctly identifies versions of GCC that are built for different targets

As usual, all current users get the upgrade for free. If you were a trial user in the past and need a trial extension visit: http://redlizards.com/trial-extension

No Comments

Post a Comment