Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Sun, 23 Nov 2014 17:18:17 +0100
From: Jens Gustedt <jens.gustedt@...ia.fr>
To: musl@...ts.openwall.com
Subject: Re: [PATCH] Add stdatomic.h for clang>=3.1 and gcc>=4.1

Am Sonntag, den 23.11.2014, 10:06 -0500 schrieb Rich Felker:
> > > I don't see
> > > where your ideas about pointers and CAS are coming in.
> 
> I'm still confused about this.

I was thinking of storing the address of the object within the lock
structure such that we can detect a collision. But perhaps that's not
such a good idea anyhow.

> > > > > > What has all of this to do with VLA? I am lost.
> > > > > 
> > > > > The operands of __typeof__ and sizeof get evaluated when they have VLA
> > > > > type. I think this is the problem.
> > > > 
> > > > ah, ok
> > > > 
> > > > No, this isn't a problem, I think. Arrays aren't allowed to be subject
> > > > of an _Atomic qualification (arrays are never qualified
> > > > themselves). For _Atomic type, the standard explicitly excludes
> > > > arrays. So arrays in general and VLA in particular should never be
> > > > passed as such into any of these generic functions, only pointers to
> > > > atomic objects can.
> > > 
> > > Is a pointer to a variably modified type considered variably modified?
> > 
> > yes
> > 
> > > If so maybe these are affected too...
> > 
> > no, the pointers that can be passed to the atomic "functions" are
> > always pointers to atomic objects, so they can't be arrays (and so
> > VLA) themselves, nor can an atomic struct containt a VLA or a pointer
> > to VLA.
> 
> _Atomic int (*pmat)[n];
> 
> Then &pmat is a pointer to a valid atomic type, an atomic pointer to a
> VLA type.

I don't see that. Ain't that a pointer to a VLA of base type _Atomic
int?

The beast that you describe would be

int (*_Atomic pmat)[n];

and effectively this would be an atomic pointer to VM type. But
concerning size, atomicity etc this is just a pointer type like any
other. (The size information doesn't change, once it is initialized.)
And concerning the atomic functions this is not different to

int (*_Atomic pmat)[];

Could you describe a bit more, where you think that there is a problem
with such a thing?

Jens

-- 
:: INRIA Nancy Grand Est ::: AlGorille ::: ICube/ICPS :::
:: ::::::::::::::: office Strasbourg : +33 368854536   ::
:: :::::::::::::::::::::: gsm France : +33 651400183   ::
:: ::::::::::::::: gsm international : +49 15737185122 ::
:: http://icube-icps.unistra.fr/index.php/Jens_Gustedt ::



Download attachment "signature.asc" of type "application/pgp-signature" (199 bytes)

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.