| Title: | Microsoft Visual C++ bug reports and kits | 
| Notice: | Register in Topic 2. 5.Last for latest Kit | 
| Moderator: | DECWET::THOMAS N | 
| Created: | Tue May 17 1994 | 
| Last Modified: | Fri Jun 06 1997 | 
| Last Successful Update: | Fri Jun 06 1997 | 
| Number of topics: | 521 | 
| Total number of notes: | 2938 | 
The following code:
typedef struct _yyy_int_s {
   struct _yyy_int_s *xxx_self;          
   yyy_attr_t       attr;                   
   yyy_startroutine_t start_routine;        
   yyy_addr_t       arg;                    
   DWORD            id;                 
   HANDLE           handle;                 
   HANDLE           cancel_event;           
   LONG             mutex_rundown;          
   BOOL             running;               
   BOOL             detached;               
   BOOL             cancelled;              
   BOOL             asyncancel;            
   BOOL             cancellable;         
}                   yyy_int_t;
typedef yyy_int_t           *yyy_t;
extern yyy_t yyy_self(void);
#define yyy_set_id(xxx_p) ((yyy_int_t *)(* xxx_p))->id
static unsigned long getid()
{
  yyy_t t;
 
  t = yyy_self();
  return(yyy_set_id(&t));
}
generates an exception on Alpha NT (not on X86 NT), the exception raises
executing the return statement. That does not happen if I compile with 
DEBUG option. I changed the code :
static unsigned long getth()
{
  yyy_t t;
  unsigned long ret;
 
  t = yyy_self();
  ret = yyy_set_id(&t);
  return ret;
}
and it properly works.
Can it be a code generation problem?
Thanks
			MariaLuisa 
| T.R | Title | User | Personal Name | Date | Lines | 
|---|---|---|---|---|---|
| 459.1 | VARESE::CORBETTA | Fri Feb 07 1997 00:51 | 3 | ||
| I found the problem, my fault, sorry! MariaLuisa | |||||