[Bug c/32122] indirect goto to an integer accepted
cvs-commit at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Sep 28 20:02:50 GMT 2021
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=32122
--- Comment #7 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Andrew Pinski <pinskia@gcc.gnu.org>:
https://gcc.gnu.org/g:e12f66d96fe41c8ef8a0d01b6a8394cd6bce3978
commit r12-3947-ge12f66d96fe41c8ef8a0d01b6a8394cd6bce3978
Author: Andrew Pinski <apinski@marvell.com>
Date: Fri Sep 17 04:59:03 2021 +0000
c: [PR32122] Require pointer types for computed gotos
So GCC has always accepted non-pointer types in computed gotos but
that was wrong based on the documentation:
Any expression of type void * is allowed.
So this fixes the problem by requiring the type to
be a pointer type.
OK? Bootstrapped and tested on x86_64-linux-gnu with no regressions.
PR c/32122
gcc/c/ChangeLog:
* c-parser.c (c_parser_statement_after_labels): Pass
the c_expr instead of the tree to c_finish_goto_ptr.
* c-typeck.c (c_finish_goto_ptr): Change the second
argument type to c_expr.
* c-tree.h (c_finish_goto_ptr): Likewise.
Error out if the expression was not of a pointer type.
gcc/testsuite/ChangeLog:
* gcc.dg/comp-goto-5.c: New test.
* gcc.dg/comp-goto-6.c: New test.
More information about the Gcc-bugs
mailing list