Martin Sebor
Martin Sebor's contributions
Article
How to categorize C programs by behavior
Martin Sebor
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.
Article
Use source-level annotations to help GCC detect buffer overflows
Martin Sebor
Help GCC detect buffer overflows by using source-level annotations. This article describes three simple annotation types to detect out-of-bounds accesses.
Article
Detecting memory management bugs with GCC 11, Part 2: Deallocation functions
Martin Sebor
Explore more features in GCC 11 that can help detect dynamic memory bugs in C and C++, and learn about the compiler's limitations.
Article
Detecting memory management bugs with GCC 11, Part 1: Understanding dynamic allocation
Martin Sebor
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.
Article
The joys and perils of aliasing in C and C++, Part 2
Martin Sebor
In part 2 of this series, avoid aliasing restrictions with programming language exemptions and compiler extensions, and explore possible resulting problems.
Article
The joys and perils of C and C++ aliasing, Part 1
Martin Sebor
In part 1 of this series, explore C/C++ language restrictions, their challenges and pitfalls, and examples demonstrating their benefits in optimized code.
Article
Efficient string copying and concatenation in C
Martin Sebor
Martin Sebor looks at C string handling functions used to copy and concatenate strings and examines ways to improve their efficiency.
Article
Understanding GCC warnings, Part 2
Martin Sebor
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.
![C and C++ logo](/sites/default/files/styles/list_item_thumb/public/blog/2020/06/C_C_featuredimage.png?itok=VMc-nbAx)
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.
![Featured image for: Value range propagation in GCC with Project Ranger.](/sites/default/files/styles/list_item_thumb/public/blog/2021/04/gcc_1x.png?itok=vd_BaTct)
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.
![2021_GCC_Memory_Bug_GCC_Featured_Article_A Detecting memory management bugs with GCC 11](/sites/default/files/styles/list_item_thumb/public/blog/2021/04/2021_GCC_Memory_Bug_GCC_Featured_Article_A.png?itok=yG7QXBUT)
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.
![2021_GCC_Memory_Bug_GCC_Featured_Article_A Detecting memory management bugs with GCC 11](/sites/default/files/styles/list_item_thumb/public/blog/2021/04/2021_GCC_Memory_Bug_GCC_Featured_Article_A.png?itok=yG7QXBUT)
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.
![C and C++ logo](/sites/default/files/styles/list_item_thumb/public/blog/2020/06/C_C_featuredimage.png?itok=VMc-nbAx)
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.
![C and C++ logo](/sites/default/files/styles/list_item_thumb/public/blog/2020/06/C_C_featuredimage.png?itok=VMc-nbAx)
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.
![C-strings-allie-smith-unsplash C strings](/sites/default/files/styles/list_item_thumb/public/blog/2019/08/C-strings-allie-smith-unsplash.jpg?itok=E8hfABYx)
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.
![RHD_full_logo_color_black_bg_RGB Red Hat Developer](/sites/default/files/styles/list_item_thumb/public/blog/2018/07/RHD_full_logo_color_black_bg_RGB.png?itok=G4Zc_x4J)
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.