Merge pull request #197 from greg-king5/static

Handle almost-duplicate C declarations that have different linkages.
This commit is contained in:
Oliver Schmidt
2015-08-15 06:53:40 +02:00
6 changed files with 103 additions and 4 deletions

20
test/err/static-2.c Normal file
View File

@@ -0,0 +1,20 @@
/*
!!DESCRIPTION!! global non-static and static conflicts
!!ORIGIN!! cc65 regression tests
!!LICENCE!! Public Domain
!!AUTHOR!! Greg King
*/
/*
see: https://github.com/cc65/cc65/issues/191
*/
#pragma warn(error, on)
int n;
static int n; /* should give an error */
int main(void)
{
return n;
}

20
test/err/static-3.c Normal file
View File

@@ -0,0 +1,20 @@
/*
!!DESCRIPTION!! global non-static and static conflicts
!!ORIGIN!! cc65 regression tests
!!LICENCE!! Public Domain
!!AUTHOR!! Greg King
*/
/*
see: https://github.com/cc65/cc65/issues/191
*/
#pragma warn(error, on)
extern int n;
static int n; /* should give an error */
int main(void)
{
return n;
}

20
test/err/static-4.c Normal file
View File

@@ -0,0 +1,20 @@
/*
!!DESCRIPTION!! global non-static and static conflicts
!!ORIGIN!! cc65 regression tests
!!LICENCE!! Public Domain
!!AUTHOR!! Greg King
*/
/*
see: https://github.com/cc65/cc65/issues/191
*/
#pragma warn(error, on)
static int n;
int n; /* should give an error */
int main(void)
{
return n;
}

20
test/val/static-1.c Normal file
View File

@@ -0,0 +1,20 @@
/*
!!DESCRIPTION!! global non-static and static conflicts
!!ORIGIN!! cc65 regression tests
!!LICENCE!! Public Domain
!!AUTHOR!! Greg King
*/
/*
see: https://github.com/cc65/cc65/issues/191
*/
#pragma warn(error, on)
static int n = 0;
extern int n; /* should not give an error */
int main(void)
{
return n;
}