>Submitter-Id: net >Originator: [EMAIL PROTECTED] >Organization: The Debian project >Confidential: no >Synopsis: gcc generates ..ng references for static aliases (alpha-linux) >Severity: non-critical >Priority: low >Category: other >Class: sw-bug >Release: 3.0 (Debian GNU/Linux) >Environment: System: Debian GNU/Linux (testing/unstable) Architecture: alpha host: alpha-linux build: alpha-linux target: alpha-linux >Description: [ Reported to the Debian BTS as report #108036. Please CC [EMAIL PROTECTED] on replies. Log of report can be found at http://bugs.debian.org/108036 ] This file compiles but doesn't link on alpha:
#include <stdlib.h> void foo(int); static void bar(int) __attribute__ ((noreturn)); void foo(int k) { if (k) { exit(k); } } static void bar(int) __attribute__ ((alias("foo"))); int main(int k) { if (k < 0) { bar(1); } return k; } What happens is that gcc generates a reference to bar..ng but the alias only exists for bar. The problem goes away when bar is not declared as static. I've reproduced this problem with gcc-3.0 as well. >How-To-Repeat: >Fix: