From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/6116 Path: news.gmane.org!not-for-mail From: Alexander Monakov Newsgroups: gmane.linux.lib.musl.general Subject: Re: [PATCH 1/9] interface additions for the C thread implementation Date: Sun, 7 Sep 2014 15:31:36 +0400 (MSK) Message-ID: References: <20140907002123.GX23797@brightrain.aerifal.cx> <1410081238.4856.137.camel@eris.loria.fr> <1410088603.4856.146.camel@eris.loria.fr> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Trace: ger.gmane.org 1410089618 13616 80.91.229.3 (7 Sep 2014 11:33:38 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 7 Sep 2014 11:33:38 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-6129-gllmg-musl=m.gmane.org@lists.openwall.com Sun Sep 07 13:33:32 2014 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1XQaio-0006iW-An for gllmg-musl@plane.gmane.org; Sun, 07 Sep 2014 13:33:30 +0200 Original-Received: (qmail 30116 invoked by uid 550); 7 Sep 2014 11:33:29 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 30108 invoked from network); 7 Sep 2014 11:33:29 -0000 In-Reply-To: <1410088603.4856.146.camel@eris.loria.fr> User-Agent: Alpine 2.00 (LNX 1167 2008-08-23) Xref: news.gmane.org gmane.linux.lib.musl.general:6116 Archived-At: On Sun, 7 Sep 2014, Jens Gustedt wrote: > Am Sonntag, den 07.09.2014, 14:05 +0400 schrieb Alexander Monakov: > > On Sun, 7 Sep 2014, Jens Gustedt wrote: > > > > > For the C++ API/ABI, these also are different types, now, with type names > > > > > (that are used for name mangling, e.g) as listed above. > > > > > > > > > > Somebody better versed in C++ could perhaps contribute code that > > > > > overloads the comparison and assignment operators such that a compilation > > > > > that tries to compare or copy these types fails. > > > > > > > > I'm not sure what you meant by this last paragraph. > > > > > > AFAIR in C++ there are ways to inhibit usage of copy assignment by > > > declaring some "operator=" function that is never defined. But my C++ > > > has really become rusty. > > > > There's no need to do that since those are unrelated structs, and therefore no > > operator== and operator= are available in the first place. You also can't do > > that in C (but in C++ you get an error rather than a warning when trying > > to assign pointers). > > This is not about assignment between different types and also not for > pointers but for the struct themselves. > > With the current C threads version the following is a priori allowed, > but shouldn't: > > mtx_t a, b; > mtx_init(&a, mtx_plain); > b = a; > > This "works" in C and in C++. > > The corresponding code in pthreads would be UB. Ah, I completely misunderstood then. But then your suggestion is equally applicable to pthread types, no? It sounded like you were suggesting to do that for C11 types only. Alexander