https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111921
Thomas Koenig <tkoenig at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|[11/12/13/14 Regression] |[11/12/13/14 Regression] |ICE with nested function |ICE with nested function |after an error |after an error since | |r6-205-g5c4abbb8e80153 Keywords|needs-bisection | CC| |mpolacek at gcc dot gnu.org --- Comment #4 from Thomas Koenig <tkoenig at gcc dot gnu.org> --- Bisection finally found the relevant patch: r6-205-g5c4abbb8e80153 5c4abbb8e80153999b0298e4b2fe81d512f133c8 is the first bad commit commit 5c4abbb8e80153999b0298e4b2fe81d512f133c8 Author: Marek Polacek <pola...@redhat.com> Date: Thu Apr 23 14:35:12 2015 +0000 re PR c/65345 (ICE with _Generic selection on _Atomic int) PR c/65345 * c-decl.c (set_labels_context_r): New function. (store_parm_decls): Call it via walk_tree_without_duplicates. * c-typeck.c (convert_lvalue_to_rvalue): Use create_tmp_var_raw instead of create_tmp_var. Build TARGET_EXPR instead of COMPOUND_EXPR. (build_atomic_assign): Use create_tmp_var_raw instead of create_tmp_var. Build TARGET_EXPRs instead of MODIFY_EXPR. * gcc.dg/pr65345-1.c: New test. * gcc.dg/pr65345-2.c: New test. From-SVN: r222370 Bisection actually needed a patch for bootstrap to succeed: diff --git a/gcc/cp/cfns.gperf b/gcc/cp/cfns.gperf index 68acd3d..5ecf86a 100644 --- a/gcc/cp/cfns.gperf +++ b/gcc/cp/cfns.gperf @@ -23,7 +23,7 @@ static unsigned int hash (const char *, unsigned int); #ifdef __GNUC__ __inline #endif -const char * libc_name_p (const char *, unsigned int); +# const char * libc_name_p (const char *, unsigned int); %} %% # The standard C library functions, for feeding to gperf; the result is used diff --git a/gcc/cp/cfns.h b/gcc/cp/cfns.h index 1c6665d..ee38f6a 100644 --- a/gcc/cp/cfns.h +++ b/gcc/cp/cfns.h @@ -51,9 +51,6 @@ along with GCC; see the file COPYING3. If not see __inline #endif static unsigned int hash (const char *, unsigned int); -#ifdef __GNUC__ -__inline -#endif const char * libc_name_p (const char *, unsigned int); /* maximum key range = 391, duplicates = 0 */