aboutsummaryrefslogtreecommitdiff
path: root/tests/asm-c-connect-1.c
diff options
context:
space:
mode:
authorMichael Matz <matz@suse.de>2017-12-04 03:51:14 +0100
committerMichael Matz <matz@suse.de>2017-12-04 03:51:14 +0100
commitcc6cb7f0e294f0c98c4970c7ec993709fc2daa1a (patch)
treed780f1752a932f06acec05bd1cbdce5a0f48ee04 /tests/asm-c-connect-1.c
parent529b44c0d53955309e79de3da677973922f48425 (diff)
downloadtinycc-cc6cb7f0e294f0c98c4970c7ec993709fc2daa1a.tar.gz
tinycc-cc6cb7f0e294f0c98c4970c7ec993709fc2daa1a.tar.bz2
Fix another corner case with C/asm symtable
See testcase (from grischka). If the asm has no .globl, but there's a (non-static) C definition the symbol should be exported, even if the first reference comes from asm.
Diffstat (limited to 'tests/asm-c-connect-1.c')
-rw-r--r--tests/asm-c-connect-1.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/tests/asm-c-connect-1.c b/tests/asm-c-connect-1.c
index c3dcf2b..1849b56 100644
--- a/tests/asm-c-connect-1.c
+++ b/tests/asm-c-connect-1.c
@@ -15,12 +15,15 @@ static int x1_c(void)
asm(".text;"_"x1: call "_"x1_c; ret");
void callx4(void);
+void callx5_again(void);
int main(int argc, char *argv[])
{
asm("call "_"x1");
asm("call "_"x2");
asm("call "_"x3");
callx4();
+ asm("call "_"x5");
+ callx5_again();
return 0;
}
@@ -37,3 +40,9 @@ void x4(void)
{
printf("x4\n");
}
+
+void x5(void);
+void x5(void)
+{
+ printf("x5\n");
+}