Quick Search:

Mode

Context

Displaying 3 lines of context. None | Less | More | Full

Other Diffs

Ignore

Blank Lines Whitespace: Expand:

Diff

1.114
 
1.115
 
MAIN:ragge:20100428145354
 
local.c
_>13011301 #ifdef TLS
 13021302 static int gottls;
 13031303 #endif
<>1304 -#ifdef os_win32
13051304 static int stdcall;
<> 1305+#ifdef os_win32
13061306 static int dllindirect;
 13071307 #endif
 13081308 static char *alias;
     
 !
13211321                 return 1;
 13221322         }
 13231323 #endif
<>1324 -#ifdef os_win32
13251324         if (strcmp(ary[1], "stdcall") == 0) {
 13261325                 stdcall = 1;
 13271326                 return 1;
     
 !
13301329                 stdcall = 0;
 13311330                 return 1;
 13321331         }
<> 1332+#ifdef os_win32
13331333         if (strcmp(ary[1], "fastcall") == 0) {
 13341334                 stdcall = 2;
 13351335                 return 1;
     
 !
14151415 #endif
 14161416                 constructor = destructor = 0;
 14171417         }
<>1418 -#ifdef os_win32
14191418         if (stdcall && (sp->sclass != PARAM)) {
 14201419                 sp->sflags |= SSTDCALL;
 14211420                 stdcall = 0;
 14221421         }
<> 1422+#ifdef os_win32
14231423         if (dllindirect && (sp->sclass != PARAM)) {
 14241424                 sp->sflags |= SDLLINDIRECT;
 14251425                 dllindirect = 0;
     
 !
14801480         return bcon(0);
 14811481 }
 14821482 
<>1483 -#ifdef os_win32
14841483 /*
 14851484  *  Postfix external functions with the arguments size.
 14861485  */
 14871486 static void
 14881487 mangle(NODE *p, void *arg)
 14891488 {
<>1490 -        NODE *l, *r;
 1491 -        TWORD t;
 1492 -        int size = 0;
 1493 -        char buf[256];
  1489+        NODE *l;
14941490 
 14951491         if (p->n_op != CALL && p->n_op != STCALL &&
 14961492             p->n_op != UCALL && p->n_op != USTCALL)
     
 !
15031499                 l = l->n_left;
 15041500         if (l->n_sp == NULL)
 15051501                 return;
<> 1502+#ifdef GCC_COMPAT
  1503+        if (gcc_get_attr(l->n_sp->ssue, GCC_ATYP_STDCALL) != NULL)
  1504+                l->n_sp->sflags |= SSTDCALL;
  1505+#endif
15061506         if (l->n_sp->sflags & SSTDCALL) {
<> 1507+#ifdef os_win32
15071508                 if (strchr(l->n_name, '@') == NULL) {
<> 1509+                        int size = 0;
  1510+                        char buf[256];
  1511+                        NODE *r;
  1512+                        TWORD t;
  1513+
15081514                         if (p->n_op == CALL || p->n_op == STCALL) {
 15091515                                 for (r = p->n_right;    
 15101516                                     r->n_op == CM; r = r->n_left) {
     
 !
15241530                         l->n_name = IALLOC(strlen(buf) + 1);
 15251531                         strcpy(l->n_name, buf);
 15261532                 }
<>1527 -
  1533+#endif
15281534                 l->n_flags = FSTDCALL;
 15291535         }
 15301536 }
<>1531 -#endif
15321537 
 15331538 void
 15341539 pass1_lastchance(struct interpass *ip)
 15351540 {
<>1536 -#ifdef os_win32
15371541         if (ip->type == IP_EPILOG) {
 15381542                 struct interpass_prolog *ipp = (struct interpass_prolog *)ip;
 15391543                 ipp->ipp_argstacksize = argstacksize;
 15401544         }
 15411545 
 15421546         if (ip->type == IP_NODE)
 15431547                 walkf(ip->ip_node, mangle, 0);
<>1544 -#endif
<_15451548 }
FishEye: Open Source License registered to PCC.
Your maintenance has expired. You can renew your license at http://www.atlassian.com/fisheye/renew
Atlassian FishEye, CVS analysis. (Version:1.6.3 Build:build-336 2008-11-04) - Administration - Page generated 2014-09-02 11:15 +0200