Marek Polacek
Marek Polacek's contributions
Article
-Wimplicit-fallthrough in GCC 7
Marek Polacek
(See this article to install GCC 7 on Red Hat Enterprise Linux.) In C and C++, the cases of a switch statement are in fact labels, and the switch is essentially a go to that jumps to the desired label. Since labels do not change the flow of control, one case block falls through to the following case block, unless terminated by a return, a break, a no return call or similar. In the example below, " case 1" falls...
Article
Testing GCC in the wild
Marek Polacek
Currently, the GCC testsuite contains more than fifty thousand tests which make up to two million lines of code. Since we, the GCC developers, try hard to avoid regressions in the compiler, almost every change to the compiler or to a related library requires a new test or a set of tests to be added. Hence the internal testsuite keeps growing at a rapid pace. It goes without saying that a new change should not break any existing test. Despite...
Article
GCC Undefined Behavior Sanitizer - ubsan
Marek Polacek
(See this article to install GCC 7 on Red Hat Enterprise Linux via yum.) Not every software bug has as serious consequences as seen in the Ariane 5 rocket crash. Notwithstanding that, bugs cost software companies a lot of money every year and upset customers, users, and developers. Some bugs happen as a result of undefined behavior occurring in the program. Undefined behavior is a concept known especially in the C and C++ languages which means that the semantics of...

Article
-Wimplicit-fallthrough in GCC 7
Marek Polacek
(See this article to install GCC 7 on Red Hat Enterprise Linux.) In C and C++, the cases of a switch statement are in fact labels, and the switch is essentially a go to that jumps to the desired label. Since labels do not change the flow of control, one case block falls through to the following case block, unless terminated by a return, a break, a no return call or similar. In the example below, " case 1" falls...

Article
Testing GCC in the wild
Marek Polacek
Currently, the GCC testsuite contains more than fifty thousand tests which make up to two million lines of code. Since we, the GCC developers, try hard to avoid regressions in the compiler, almost every change to the compiler or to a related library requires a new test or a set of tests to be added. Hence the internal testsuite keeps growing at a rapid pace. It goes without saying that a new change should not break any existing test. Despite...

Article
GCC Undefined Behavior Sanitizer - ubsan
Marek Polacek
(See this article to install GCC 7 on Red Hat Enterprise Linux via yum.) Not every software bug has as serious consequences as seen in the Ariane 5 rocket crash. Notwithstanding that, bugs cost software companies a lot of money every year and upset customers, users, and developers. Some bugs happen as a result of undefined behavior occurring in the program. Undefined behavior is a concept known especially in the C and C++ languages which means that the semantics of...