On Tue, Dec 20, 2011 at 9:37 AM, Tristan Gingold <ging...@adacore.com> wrote: > Hi, > > the alpha/vms backend emitted the trampoline entry point too often, as > functions declared directly within a translation unit weren't considered as > top-level functions. > > Fixed by this patch, applied on trunk. > > Tristan. > > 2011-12-20 Tristan Gingold <ging...@adacore.com> > > * config/alpha/alpha.c (alpha_start_function): Adjust condition to > create VMS trampoline entry point. > > Index: config/alpha/alpha.c > =================================================================== > --- config/alpha/alpha.c (revision 182519) > +++ config/alpha/alpha.c (working copy) > @@ -7935,7 +7935,8 @@ > if (TARGET_ABI_OPEN_VMS > && !TREE_PUBLIC (decl) > && DECL_CONTEXT (decl) > - && !TYPE_P (DECL_CONTEXT (decl))) > + && !TYPE_P (DECL_CONTEXT (decl)) > + && TREE_CODE (DECL_CONTEXT (decl)) != TRANSLATION_UNIT_DECL)
We'd have !DECL_FILE_SCOPE_P (decl) which covers the DECL_CONTEXT (decl) && TREE_CODE check. > { > strcpy (tramp_label, fnname); > strcat (tramp_label, "..tr"); >