# HG changeset patch # User thomask # Date 1175329580 0 # Node ID bfebb405f3edf7b38370ad987b6d522722d039b1 # Parent 8888892dd50ec001349075ad54c8136b1d5b485c r7390@birke: tk | 2007-03-29 16:07:56 +0200 [Issue 957] linkage attributes for function level declarations are ignored Thomas K?hne 2007-02-13 http://d.puremagic.com/issues/show_bug.cgi?id=957 diff -r 8888892dd50e -r bfebb405f3ed run/e/extern_10_A.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/e/extern_10_A.d Sat Mar 31 08:26:20 2007 +0000 @@ -0,0 +1,25 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @author@ Thomas Kühne +// @date@ 2007-02-13 +// @uri@ http://d.puremagic.com/issues/show_bug.cgi?id=957 +// @desc@ [Issue 957] linkage attributes for function level declarations are ignored + +module dstress.run.e.extern_10_A; + +extern(Pascal) long foo(int a, int b){ + return (a + 1) * b; +} + +int main(){ + extern(Pascal) long function(int, int) bar; + bar = &foo; + + if(20 != bar(3, 5)){ + assert(0); + } + + return 0; +} diff -r 8888892dd50e -r bfebb405f3ed run/e/extern_10_B.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/e/extern_10_B.d Sat Mar 31 08:26:20 2007 +0000 @@ -0,0 +1,26 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @author@ Thomas Kühne +// @date@ 2007-02-13 +// @uri@ http://d.puremagic.com/issues/show_bug.cgi?id=957 +// @desc@ [Issue 957] linkage attributes for function level declarations are ignored + +module dstress.run.e.extern_10_B; + +extern(Pascal) long foo(int a, int b){ + return (a + 1) * b; +} + +extern(Pascal) long function(int, int) bar; + +int main(){ + bar = &foo; + + if(20 != bar(3, 5)){ + assert(0); + } + + return 0; +} diff -r 8888892dd50e -r bfebb405f3ed run/e/extern_10_C.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/e/extern_10_C.d Sat Mar 31 08:26:20 2007 +0000 @@ -0,0 +1,26 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @author@ Thomas Kühne +// @date@ 2007-02-13 +// @uri@ http://d.puremagic.com/issues/show_bug.cgi?id=957 +// @desc@ [Issue 957] linkage attributes for function level declarations are ignored + +module dstress.run.e.extern_10_C; + +extern(C) long foo(int a, int b){ + return (a + 1) * b; +} + +extern(C) long function(int, int) bar; + +int main(){ + bar = &foo; + + if(20 != bar(3, 5)){ + assert(0); + } + + return 0; +} diff -r 8888892dd50e -r bfebb405f3ed run/e/extern_10_D.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/e/extern_10_D.d Sat Mar 31 08:26:20 2007 +0000 @@ -0,0 +1,25 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @author@ Thomas Kühne +// @date@ 2007-02-13 +// @uri@ http://d.puremagic.com/issues/show_bug.cgi?id=957 +// @desc@ [Issue 957] linkage attributes for function level declarations are ignored + +module dstress.run.e.extern_10_D; + +extern(C) long foo(int a, int b){ + return (a + 1) * b; +} + +int main(){ + extern(C) long function(int, int) bar; + bar = &foo; + + if(20 != bar(3, 5)){ + assert(0); + } + + return 0; +} diff -r 8888892dd50e -r bfebb405f3ed run/e/extern_10_E.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/e/extern_10_E.d Sat Mar 31 08:26:20 2007 +0000 @@ -0,0 +1,25 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @author@ Thomas Kühne +// @date@ 2007-02-13 +// @uri@ http://d.puremagic.com/issues/show_bug.cgi?id=957 +// @desc@ [Issue 957] linkage attributes for function level declarations are ignored + +module dstress.run.e.extern_10_E; + +extern(D) long foo(int a, int b){ + return (a + 1) * b; +} + +int main(){ + extern(D) long function(int, int) bar; + bar = &foo; + + if(20 != bar(3, 5)){ + assert(0); + } + + return 0; +} diff -r 8888892dd50e -r bfebb405f3ed run/e/extern_10_F.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/e/extern_10_F.d Sat Mar 31 08:26:20 2007 +0000 @@ -0,0 +1,26 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @author@ Thomas Kühne +// @date@ 2007-02-13 +// @uri@ http://d.puremagic.com/issues/show_bug.cgi?id=957 +// @desc@ [Issue 957] linkage attributes for function level declarations are ignored + +module dstress.run.e.extern_10_F; + +extern(D) long foo(int a, int b){ + return (a + 1) * b; +} + +extern(D) long function(int, int) bar; + +int main(){ + bar = &foo; + + if(20 != bar(3, 5)){ + assert(0); + } + + return 0; +}