The GCC steering committee has accepted an AI contributions policy recommended by its AI policy working group, announced on 29 July. The core of it: the project will decline any “legally significant contributions which include LLM-generated content or are derived from LLM-generated content.”
The word doing the work there is “significant”, and to their credit they didn’t leave it to taste. The policy borrows the definition already in the GNU Project maintainer guidelines, where the threshold sits at “around 15 lines of code and/or text”. That number already existed for copyright-assignment reasons, long before anyone was pasting model output into a patch. They reached for a boundary the project had been enforcing for decades rather than inventing a new one under pressure.
I want to correct something I said about this myself when it first crossed my desk. I filed it as “GCC didn’t ban it and didn’t wave it through,” which is the tidy centrist reading and it isn’t right. For contributed code, above that fifteen-line threshold, this is a refusal. Call it what it is.
What they left open is more interesting than what they closed
The policy does not forbid using an LLM for research, analysis, bug discovery and reporting, or patch review. The condition is only that the output doesn’t end up inside a contribution. Maintainers may also choose to accept legally significant test cases that were generated by a model.
Read those two carve-outs together and the shape of the rule becomes obvious. This is not a policy about whether AI is any good at writing compiler code. It’s a policy about provenance — who can be said to have authored a thing, and whether the project can defend that claim later. Analysis leaves no authored artefact in the tree. A bug report leaves no authored artefact in the tree. A test case does, which is presumably why that one got handed to maintainer discretion rather than a blanket yes or no.
That distinction is worth stealing even if you will never send a patch to GCC. Most people set their own policy by asking whether the model is good enough for the job. GCC asked a different question: does this produce something whose authorship I will one day need to stand behind? Those two questions have different answers surprisingly often.
Written before the first bad patch, not after
The part I keep coming back to is the sequencing. GCC is one of the oldest projects in open source, with a contributor base large enough that “we’ll deal with it case by case” would have been the path of least resistance. They convened a working group, produced a rule, and wrote it down while the question was still hypothetical for most of their tree.
The committee also says it expects the policy to evolve and will revisit it periodically, which is the correct amount of confidence. Nobody knows what the tooling looks like in eighteen months. A rule you have committed to revisiting is a rule you are allowed to write now rather than waiting for certainty you’re never going to get.
If you run anything — a team, a repo, a client engagement — the useful takeaway isn’t GCC’s specific answer. Fifteen lines is their threshold because their liability is copyright assignment on a compiler. Yours will be somewhere else. The takeaway is that they found the number they actually cared about, wrote it into the contribution rules, and told everyone what it was, instead of discovering the boundary during an argument about a patch someone had already spent a weekend on.