This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA/TESTSUITE] build schedlock.c on 64-bit platforms


Daniel Jacobowitz <drow at mvista dot com> writes:

|> On Thu, Apr 10, 2003 at 05:16:05PM +0200, Andreas Schwab wrote:
|> > Andrew Cagney <ac131313 at redhat dot com> writes:
|> > |> > |> > args[i] = 1;
|> > |> >> - res = pthread_create(&threads[i], NULL, thread_function, (void *)i);
|> > |> >> |> > |> |> > |> Try:
|> > |> |> > |> (((char *) NULL) + i)
|> > |> |> > |> and what ever the reverse of that is ....
|> > |> > That is even less portable than the above.
|> |> Really? What's non-portable about it?


NULL is not an object, and the C standard does not define any meaning for
the above expression.  On the other hand, the effect of a cast from
integer to pointer is implementation-defined (although it might trap).

What about this then:


static char *null_char_pointer = NULL;

(null_char_pointer + i)

and:

(i - null_char_pointer)

:-)



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]