[aspectc-user] NodeName: Error

Panu Bloigu panu.bloigu at mbnet.fi
Tue Dec 5 09:33:58 CET 2006


Yet more information on the 'NodeName: Error'. The type pthread_mutex_t is
defined (atleast on my system) in pthread.h as an union:

typedef union
  struct __pthread_mutex_s
    int __lock;
    unsigned int __count;
    int __owner;
    int __kind;
    unsigned int __nusers;
    __extension__ union
      int __spins;
      __pthread_slist_t __list;
  } __data;
  char __size[__SIZEOF_PTHREAD_MUTEX_T];
  long int __align;
} pthread_mutex_t;

and the PTHREAD_MUTEX_INITIALIZER in turn is a macro:

# define PTHREAD_MUTEX_INITIALIZER { { 0, 0, 0, 0, 0, { 0 } } }

Obviously I can not go about doing the initialization of a variable of type
pthread_mutex_t in the class declaration through the kind of assignment as
shown in my previous post. However, what's wrong here is that AspectC++
compiler won't let the proper error message go through. What sould be show
by the compiler is something like (as with g++ 4.1.1):

error: a brace-enclosed initializer is not allowed here before '{' token
error: ISO C++ forbids initialization of member 'mutex'
error: making 'mutex' static
error: invalid in-class initialization of static data member of non-integral
type 'pthread_mutex_t'

Also, compilation process seems to stop after 'NodeName: Error'. If there
are any more syntax errors, they are not shown.

Hope this helps.


More information about the aspectc-user mailing list