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)
      {
        strcpy (tramp_label, fnname);
        strcat (tramp_label, "..tr");

Reply via email to