Martin Sebor
Martin Sebor's contributions

How to categorize C programs by behavior
Could your perfectly running program blow up someday? Learn different types of behavior in the standard and what helps make a correct C or C++ program.

Use source-level annotations to help GCC detect buffer overflows
Help GCC detect buffer overflows by using source-level annotations. This article describes three simple annotation types to detect out-of-bounds accesses.

Detecting memory management bugs with GCC 11, Part 2: Deallocation functions
Explore more features in GCC 11 that can help detect dynamic memory bugs in C and C++, and learn about the compiler's limitations.

Detecting memory management bugs with GCC 11, Part 1: Understanding dynamic allocation
Dynamic memory management bugs are hard to find and frequently targeted in C and C++ programs, but GCC 11's enhanced malloc attribute is here to help.

The joys and perils of aliasing in C and C++, Part 2
In part 2 of this series, avoid aliasing restrictions with programming language exemptions and compiler extensions, and explore possible resulting problems.

The joys and perils of C and C++ aliasing, Part 1
In part 1 of this series, explore C/C++ language restrictions, their challenges and pitfalls, and examples demonstrating their benefits in optimized code.

Efficient string copying and concatenation in C
Martin Sebor looks at C string handling functions used to copy and concatenate strings and examines ways to improve their efficiency.

Understanding GCC warnings, Part 2
This article focuses on flow-based warnings that have increasingly been implemented in what GCC calls the "middle end." Limitations of middle-end warnings are discussed, as are false positives in middle-end warnings and possible solutions.