Gimpel Software LLC Logo   Gimpel Software Evaluate Order Support News About
PC-lint Plus is a comprehensive static analysis solution for C and C++
See how PC-lint Plus can help you:

Certified for ISO 26262 and IEC 61508

exida ASIL D logo exida SIL 4 logo

note 9044: function parameter 'r' modified
[MISRA C 2012 Rule 17.8]
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>

uint32_t crc32_for_byte(uint32_t r) {
 for(int j = 0; j < 8; ++j)
  r = (r & 1? 0: (uint32_t)0xEDB88320L) ^ r >> 1;
 return r ^ (uint32_t)0xFF000000L;
}

void crc32(const void *data, size_t n_bytes, uint32_t* crc) {
 static uint32_t table[0x100];
 if(!*table)
   for(size_t i = 0; i < 0x100; ++i)
    table[i] = crc32_for_byte(i);
 for(size_t i = 0; i < n_bytes; ++i)
   *crc = table[(uint8_t)*crc ^ ((uint8_t*)data)[i]] ^ *crc >> 8;
}

Comply with Safety Standards

PC-lint Plus can check for violations of internal code guidelines as well as analyzing compliance with industry standards such as MISRA®, AUTOSAR®, and CERT® C. Detailed information about which rules are supported, which messages are used to report violations, and the extent to which the rules are supported is available in our manual and configuration files.

Over a thousand customizable messages can be configured to support many different code guidelines; e.g. use of braces for control structures, assignment in conditional expressions, explicit clarification of operator precedence, and more. The exact set of desired messages can be specified in reusable configuration files to share between projects and teams.

PC-lint Plus provides industry-leading support for MISRA standards including MISRA C 2012, MISRA C 2004, and MISRA C++ 2008 as well as their addenda and corrigenda. We communicate extensively with the MISRA committee to implement even the smallest details and resolve ambiguities in the published text.

Support for AUTOSAR and CERT C is now available in version 1.3.

PC-lint Plus has been certified by exida® for ISO 26262:2018 (ASIL D qualified) and IEC 61508:2010 (SIL 4 qualified).

steering wheel medical helicopter


Identify Defects and Vulnerabilities

There are many different kinds of serious code flaws, and PC-lint Plus offers a diverse range of detection capabilities for improved software quality confidence. Detect pointer safety and memory lifetime issues like buffer overflows and use after free by using our Value Tracking data flow analysis engine and built-in Function Semantics for C and C++ standard libraries. Check stack usage and identify recursive functions and call chains. Find unreachable code indicating design inconsistencies.

Many famous software bugs could have been prevented through judicious static analysis. Identify defects during development instead of waiting for potentially catastrophic consequences in production.

  • Buffer overflow
  • Null pointer dereference
  • Uninitialized memory
  • Use after free
  • Variable out of scope
  • Unsafe function
  • Stack usage analysis
  • printf and scanf vulnerabilities
  • Unreachable code
  • ... and many more


magnifying glass

Find Potential Bugs

With over thirty years of C and C++ static analysis experience, Gimpel Software is uniquely qualified to deliver a static analysis solution with a deep understanding of these languages, their architectural patterns, and developer mindset. PC-lint Plus can detect subtle inconsistencies in code that developers are likely misinterpreting and can provide succinct explanations of how to resolve esoteric mistakes.

Find suspicious code that does not achieve what it appears to, or that will fail in the future in the face of changing circumstances. Ensure code is resilient to environmental differences across platforms, compilers, and language standards. Refine your software architecture to clearly convey and correctly accomplish its objectives. PC-lint Plus has more than a thousand diagnostic messages in various categories of severity to detect a wide range of issues, from control flow, memory, and arithmetic, to program layout, dependencies, and class design. See a list of representative checks.



Improve Developer Productivity

Detect bugs that can waste countless hours of developer and end user time before they're found. Developers spend a significant portion of their time attempting to identify the source of reported bugs based on surface-level errors that impact the use of the software. PC-lint Plus goes straight to the root cause and identifies specific actionable issues associated with a particular piece of code so that they can be fixed before they cause runtime errors.

“Most software errors are found during the middle to later stages of development ... which happen to be the most expensive stages to fix errors” (Rivers and Vouk, 1998)


compatible

Widely Compatible

PC-lint Plus runs natively on Windows 7/8/10, Linux, and macOS and can analyze source code targeting virtually any platform. With support for a wide variety of compilers, C11/C18 and C++17, and the ability to integrate with your existing IDE, build process, or continuous integration system, PC-lint Plus can quickly be incorporated into any project.



Scalable

Levarage the parallel computation capabilities of modern hardware to quickly analyze large projects. PC-lint Plus scales efficiently to utilize multiple processing cores by using independent threads and minimal shared memory. Developers and testers can perform code analysis on individual workstations or query results from a build server automatically analyzing every code change.

Our message suppression system makes it easy to get started by focusing on the most relevant diagnostics. It is flexible enough to support the needs of large projects involving multiple teams, guidelines, and exemptions. Modular configuration files can be organized to provide a standard analysis environment.

expand


compatible

Secure, On-site Analysis

PC-lint Plus runs locally on your developer workstations, build servers, or continuous integration servers. It does not use an internet connection and will never collect nor submit data, code, statistics, analytics, or any other information from your system over any channel.



Try PC-lint Plus

Request a free 30-day evaluation license to try PC-lint Plus locally and see the value it can bring to your project. During the evaluation you will have full access to our technical support team.

Visit our online technical demonstration for a sample of PC-lint Plus analysis on an editable code example.