This is a list of (experimental) extensions to GCC which, for one reason or the other, did not (yet) make it into the official source tree. Please direct feedback and bug reports to their respective maintainers, not our mailing lists.
CTraps, short for Communication Traps, adds a compiler pass as a plugin that instruments instructions that access memory locations that might be shared between threads. It supports dynamic program analysis, debugging, and performance tuning in concurrent code.
MELT is a high-level domain specific language to ease the
development of GCC extensions. It is available as a GCC experimental
and also as a GCC [meta-] plugin (GPLv3 licensed, FSF
The MELT language is translated to C, and provides powerful features (pattern-matching, functional, object, reflective programming styles, ability to mix C and MELT code, Lisp look,...) to ease development of GCC plugin-like extensions.
gcc‑lua extends GCC with the ability to run Lua scripts. The plugin provides an interface to register callback functions for plugin events, and inspect the abstract syntax tree of a translation unit.
StarPU is a GCC extension and run-time support library for hybrid CPU/GPU task programming. Its GCC plug-in allows programmers to annotate C code to describe tasks and their implementations. Each task may have one or more implementations, such as CPU implementations or implementations written in OpenCL.
StarPU's support library schedules tasks over the available CPU cores and GPUs, and is also responsible for scheduling any data transfers between main memory and GPUs.
This is an experimental port of GCC to the DEC PDP-10 architecture.
These patches add a
-fbounds-checking flag that
adds bounds checking tests to pointer and array accesses.
Richard Jones developed the
patches against gcc 2.7 in 1995.
Herman ten Brugge is the current maintainer and has updated the patches for
GCC 2.95.2 and later.
William Bader has
You may freely mix object modules compiled with and without bounds
checking. The bounds checker also includes replacements for
str* routines and can detect
invalid calls against checked memory objects, even from modules
compiled without bounds checking.
Copyright (C) Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.