http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59440
--- Comment #8 from Tobias Burnus <burnus at gcc dot gnu.org> --- The problem is the following code in tree-nested.c: /* A subroutine of convert_local_reference. Create a local variable in the parent function with DECL_VALUE_EXPR set to reference the field in FRAME. This is used both for debug info and in OpenMP lowering. */ static tree get_local_debug_decl (struct nesting_info *info, tree decl, tree field) { ... new_decl = build_decl (DECL_SOURCE_LOCATION (decl), VAR_DECL, DECL_NAME (decl), TREE_TYPE (decl)); DECL_IGNORED_P (new_decl) = DECL_IGNORED_P (decl); ... /* Do not emit debug info twice. */ DECL_IGNORED_P (decl) = 1; } Result: new_decl gets emitted due to DECL_IGNORED_P being copied - but the NAMELIST_DECL still points to the 'old' decl, which now has DECL_IGNORED_P() = 1.