C++

C and C++ logo
Article

Making memcpy(NULL, NULL, 0) well-defined

Nikita Popov

C2y makes memcpy(NULL, NULL, 0) and other zero-length operations on null pointers well defined. This removes a source of bugs that may result in security issues.

Featured image for Valgrind.
Article

How to track file descriptors with Valgrind

Alexandra Petlanova Hajkova

Explore new features related to Valgrind's file descriptor and learn how to use them to track the file descriptors your program is using—or misusing.

Feature image for the C programming language.
Article

Preparing Valgrind Memcheck for x86-64-v3

Mark Wielaard

A brief look at the changes needed to allow Valgrind Memcheck to produce correct diagnostics for memory issues in conjunction with x86-64-v3 instructions.

Feature image for the C programming language.
Article

A new constant expression interpreter for Clang, Part 2

Timm Baeder

A popular technique modern compilers use to improve the runtime performance of compiled code is to perform computations at compile time instead of at runtime. However, constant expressions need to be evaluated at compile time for a variety of reasons. To help resolve this problem, I've been working on improving the Clang's constant interpreter.

Configure a Jupyter notebook to use GPUs for AI/ML modeling
Article

Your second GPU algorithm: Quicksort

Kenny Ge

Learn how to write a GPU-accelerated quicksort procedure using the algorithm for prefix sum/scan and explore other GPU algorithms, such as Reduce and Game of Life.

Featured image for Red Hat Enterprise Linux.
Article

Using GDB to time travel

Guinevere Larsen

This article provides a quick tutorial, explaining how to use GDB's reverse debugging facility, also known as time travel debugging. This will show the basic commands to use this facility.

Configure a Jupyter notebook to use GPUs for AI/ML modeling
Article

What is GPU programming?

Kenny Ge

The first of a four-part series on introductory GPU programming, this article provides a basic overview of the GPU programming model.

Featured image for: Value range propagation in GCC with Project Ranger.
Article

A practical guide to linker section ordering

Nick Clifton

Learn how to use a linker's section ordering feature to experiment with the layout of code and data in memory, without the need to write full linker scripts.

Featured image for: Value range propagation in GCC with Project Ranger.
Article

New C++ features in GCC 14

Marek Polacek

Discover new features and enhancements in the C++ front end in GCC 14, the next major version of the GNU Compiler Collection.

Featured image for Best of Linux 2023 that shows a computing setup.
Article

Our top Linux articles for developers in 2023

Colleen Lobner

Check out the top 10 Linux articles we published for developers in 2023, covering new features in Red Hat Enterprise Linux, containers, GCC 13, and more.