Ignore:
Timestamp:
Feb 5, 2004, 5:58:41 PM (22 years ago)
Author:
bird
Message:

...

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/testcase/weak/weak3.c

    • Property cvs2svn:cvs-rev changed from 1.5 to 1.6
    r1185 r1186  
    22 * http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html
    33 */
     4#include <stdio.h>
    45
    5 /* GCC Style */ 
     6/* GCC Style */
    67int __f ()
    78{
     
    1213
    1314/* SUN style */
    14 extern int WeakExternalWithLocalDefault();
    15 int LocalDefault()
     15extern int WeakExternalWithLocalDefault_ResolveDefault(void);
     16int LocalDefault(void)
    1617{
    17     return -1;
     18    return 2;
    1819}
    19 #pragma weak WeakExternalWithLocalDefault = LocalDefault
     20#pragma weak WeakExternalWithLocalDefault_ResolveDefault = LocalDefault
    2021
     22extern int ExternalDefault(void);
     23extern int   WeakExternalWithExternalDefault_ResolveDefault(void);
     24#pragma weak WeakExternalWithExternalDefault_ResolveDefault = ExternalDefault
    2125
    22 /* This doesn't work in GCC, though it's the only thing which works in VAC. */
    23 extern int ExternalDefault();
    24 extern int WeakExternalWithLocalDefault();
    25 #pragma weak WeakExternalWithExternalDefault = ExternalDefault
     26/* resolve weak external (still SUN style) */
     27extern int   WeakExternalWithLocalDefault_ResolveWKEXT(void);
     28#pragma weak WeakExternalWithLocalDefault_ResolveWKEXT = LocalDefault
    2629
     30extern int   WeakExternalWithExternalDefault_ResolveWKEXT(void);
     31#pragma weak WeakExternalWithExternalDefault_ResolveWKEXT = ExternalDefault
    2732
    2833
    2934int main()
    3035{
    31     int rc;
     36    int rc = 0;
     37    int i;
    3238
    33     rc = WeakExternalWithLocalDefault();
    34     rc += WeakExternalWithExternalDefault();
     39    i = f();
     40    if (i != 1)
     41    {
     42        printf("weak3: f() returned %d expected %d\n", i, 1);
     43        rc++;
     44    }
     45
     46    i = WeakExternalWithLocalDefault_ResolveDefault();
     47    if (i != 2)
     48    {
     49        printf("weak3: WeakExternalWithLocalDefault_ResolveDefault() returned %d expected %d\n", i, 2);
     50        rc++;
     51    }
     52
     53    i = WeakExternalWithExternalDefault_ResolveDefault();
     54    if (i != -1)
     55    {
     56        printf("weak3: WeakExternalWithExternalDefault_ResolveDefault() returned %d expected %d\n", i, -1);
     57        rc++;
     58    }
     59
     60    i = WeakExternalWithLocalDefault_ResolveWKEXT();
     61    if (i != -2)
     62    {
     63        printf("weak3: WeakExternalWithLocalDefault_ResolveWKEXT() returned %d expected %d\n", i, -2);
     64        rc++;
     65    }
     66
     67    i = WeakExternalWithExternalDefault_ResolveWKEXT();
     68    if (i != -3)
     69    {
     70        printf("weak3: WeakExternalWithExternalDefault_ResolveWKEXT() returned %d expected %d\n", i, -3);
     71        rc++;
     72    }
    3573
    3674    return rc;
Note: See TracChangeset for help on using the changeset viewer.