April 25th, 2025

GCC, the GNU Compiler Collection 15.1 released

GCC 15.1 was released on April 25, 2025, featuring improvements over GCC 14.x. It supports multiple languages, highlighting community contributions. Users can access it via mirror sites and mailing lists.

Read original articleLink Icon
GCC, the GNU Compiler Collection 15.1 released

The GCC developers have announced the release of GCC 15.1 on April 25, 2025. This major release introduces new features and improvements compared to the previous version, GCC 14.x. Originally known as the GNU C Compiler, GCC now stands for the GNU Compiler Collection, reflecting its support for multiple programming languages. The developers express gratitude to the contributors who provided enhancements, bug fixes, and testing results, emphasizing the importance of community involvement in the project's success. Users can obtain GCC from mirror sites or the version control system, and for assistance, they are encouraged to consult the GCC manuals or the gcc-help mailing list. Feedback and comments on the development of GCC can be shared on the developer mailing list, which is publicly archived.

- GCC 15.1 was released on April 25, 2025.

- The release includes new features and improvements over GCC 14.x.

- GCC now stands for the GNU Compiler Collection, supporting multiple languages.

- Community contributions are vital to the success of the GCC project.

- Users can access GCC through mirror sites and seek help via mailing lists.

Link Icon 6 comments
By @Calavar - about 20 hours
> {0} initializer in C or C++ for unions no longer guarantees clearing of the whole union (except for static storage duration initialization), it just initializes the first union member to zero. If initialization of the whole union including padding bits is desirable, use {} (valid in C23 or C++) or use -fzero-init-padding-bits=unions option to restore old GCC behavior.

This is going to silently break so much existing code, especially union based type punning in C code. {0} used to guarantee full zeroing and {} did not, and step by step we've flipped the situation to the reverse. The only sensible thing, in terms of not breaking old code, would be to have both {0} and {} zero initialize the whole union.

I'm sure this change was discussed in depth on the mailing list, but it's absolutely mind boggling to me

By @omoikane - about 17 hours
Really excited about #embed support:

> C: #embed preprocessing directive support.

> C++: P1967R14, #embed (PR119065)

See also:

https://news.ycombinator.com/item?id=32201951 - Embed is in C23 (2022-07-23)

By @elvircrn - about 19 hours
"C++ Modules have been greatly improved."

It would be nice to know what these great improvements actually are.

By @pjmlp - about 11 hours
Interesting to see some improvements being done to Modula-2 frontend as well.
By @codr7 - about 17 hours
Finally, musttail, can't wait to try that out.
By @fithisux - about 13 hours
Any Hope for HaikuOs + Winlibs. GDC would be greatly appreciated.