diff --git a/gcc/d/ChangeLog b/gcc/d/ChangeLog index 1c58c6092..4b6f88874 100644 --- a/gcc/d/ChangeLog +++ b/gcc/d/ChangeLog @@ -1,3 +1,10 @@ +2014-01-14 Johannes Pfau + + * d-decls.cc(FuncDeclaration::toSymbol): Do not set TREE_NOTHROW on + nothrow functions. + * d-decls.cc(TypeInfoDeclaration::toSymbol): Call relayout_decl after + changing the type. + 2014-01-02 Iain Buclaw * d-objfile.cc(setup_symbol_storage): Use output_module_p on template diff --git a/gcc/d/d-decls.cc b/gcc/d/d-decls.cc index cbb7b9954..531db65fd 100644 --- a/gcc/d/d-decls.cc +++ b/gcc/d/d-decls.cc @@ -215,6 +215,7 @@ TypeInfoDeclaration::toSymbol (void) // given TypeInfo. It is the actual data, not a reference gcc_assert (TREE_CODE (TREE_TYPE (csym->Stree)) == REFERENCE_TYPE); TREE_TYPE (csym->Stree) = TREE_TYPE (TREE_TYPE (csym->Stree)); + relayout_decl (csym->Stree); TREE_USED (csym->Stree) = 1; // Built-in typeinfo will be referenced as one-only. @@ -387,9 +388,6 @@ FuncDeclaration::toSymbol (void) if (isPure() == PUREstrong && vthis == NULL && ftype->isnothrow && ftype->retStyle() == RETstack) DECL_PURE_P (fndecl) = 1; - - if (ftype->isnothrow) - TREE_NOTHROW (fndecl) = 1; } #if TARGET_DLLIMPORT_DECL_ATTRIBUTES