Tag
作者分享了在 C23 标准下采用的三种现代 C 编码约定,包括使用 [[nodiscard]] 与 [[maybe_unused]] 处理未使用返回值、C23 中 union 初始化行为的变化,以及借助 auto 简化代码的新模式。
一篇技术博客文章,列举了标准 C 与 gcc/clang + glibc/musl 实际行为之间的多种不兼容之处,包括 asm 关键字、FLT_ROUNDS、标准 pragma 未实现以及 initstate 错误处理等问题。
This blog post details the complex process of syncing the Rust GCC backend repository with Rust's main repository using git subtree, and the many issues that arose, illustrating Murphy's law.
This article explains GCC's implementation of nested functions by creating a synthetic structure for parent variable access, comparing it to C++ lambdas in a technical blog post.
Sirdab has raised $10M in Series A funding led by Elm and BECO Capital to scale its logistics platform across Saudi Arabia and the GCC, having grown revenue 20x and reached profitability since YC W23.
The article presents a technique to indirectly call nested functions in GCC without an executable stack by reading pointers from trampolines, suitable for older GCC versions, and implemented in the noplate library.
This tutorial demonstrates how to add JIT-compilation to a simple stack-based interpreter using libgccjit, with code examples and explanations.
A LWN comment discusses the relatively recent implementation of tail-call optimization in C compilers, citing historical limitations and noting that modern GCC and Clang now support it, with potential benefits for interpreter implementations.
A blog post examines an ambiguity in the C89 standard about implicit function declarations, where GCC and Clang disagree on interpretation, leading to different compile results for certain code.
The gccrs project, creating a Rust frontend for GCC, has made progress toward compiling the Linux kernel, resolving issues in attribute handling, name resolution, and resource management, and reorganizing development milestones.
The GCC steering committee has accepted an AI contributions policy that will decline legally significant contributions containing LLM-generated content, with exceptions for test cases, while allowing LLM use for research and analysis.
The article explores the limitations of GCC's large code model (mcmodel=large), particularly its inability to handle Thread Local Storage (TLS) with 32-bit relocations, making it unusable for truly large binaries despite its stated purpose.
This blog post explores parsing ambiguities in C23 involving `auto` as a type inference specifier or storage-class specifier, showing how GCC and Clang disagree on parsing declarations like `auto x = 67;` when `x` is a typedef, and how attributes complicate the situation.
A blog post describes the process of building GCC 1.27, a 1988 compiler, on a modern Ubuntu system, detailing necessary patches and steps.
A practical guide to setting up an AmigaOS development environment on Linux, covering toolchain installation, emulation, and remote debugging.
GCC 16 ensures nested functions that don't capture variables require no trampolines, improving security. GCC 17 introduces built-in functions to avoid trampolines even for captured nested functions, using wide pointers and static chain registers.
Explains the use of GCC's computed goto extension to improve the performance of bytecode VM dispatch tables compared to traditional switch statements, with a simple example.
Raymond Chen explores gcc libstdc++'s rotation algorithm for random-access iterators, revealing it is fundamentally the same as the forward-iterator rotation algorithm, just viewed from a different perspective. The post is part of a series comparing rotation implementations across compilers.
José Marchesi and the GCC-BPF team provided an update on BPF support in GCC 16, highlighting progress toward feature parity with LLVM and increasing pass rate of the kernel's BPF self-tests.
This article discusses the practical challenges of writing portable C code due to reliance on non-standard compiler extensions and glibc's conditional headers, illustrating with examples from building a C compiler.