Path: ...!2.eu.feeder.erje.net!3.eu.feeder.erje.net!feeder.erje.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Bart Newsgroups: comp.lang.c Subject: Re: Top 10 most common hard skills listed on resumes... Date: Tue, 10 Sep 2024 17:58:13 +0100 Organization: A noiseless patient Spider Lines: 74 Message-ID: References: <875xrkxlgo.fsf@bsb.me.uk> <87o75bwlp8.fsf@bsb.me.uk> <871q27weeh.fsf@bsb.me.uk> <20240829083200.195@kylheku.com> <87v7zjuyd8.fsf@bsb.me.uk> <20240829084851.962@kylheku.com> <87mskvuxe9.fsf@bsb.me.uk> <20240908115827.00007521@yahoo.com> <87zfoikve1.fsf@bsb.me.uk> <87zfofk32t.fsf@bsb.me.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Tue, 10 Sep 2024 18:58:13 +0200 (CEST) Injection-Info: dont-email.me; posting-host="dcf5d3c489b4c68fb3a29f50d34b534a"; logging-data="3207309"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/hhCmpTVUxjaNyEB9A6u1h" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:4hYMSxWS1Ezwb9G7pMEq+Y+l/Xc= In-Reply-To: <87zfofk32t.fsf@bsb.me.uk> Content-Language: en-GB Bytes: 4361 On 10/09/2024 15:15, Ben Bacarisse wrote: > Bart writes: > >> On 08/09/2024 17:44, Bart wrote: >>> On 08/09/2024 16:39, Ben Bacarisse wrote: >>>> Bart writes: >>>> >>>>> In language like C, the LHS of an assignment is one of four categories: >>>>> >>>>>    A = Y;         // name >>>>>    *X = Y;        // pointer >>>>>    X[i] = Y;      // index >>>>>    X.m = Y;       // member select >>>> >>>> I can think of three others.  There may be more. >>> OK, so what are they? >> >> TM: >>> Yes, very good. I count four or five, depending on what >> differences count as different. >> >> I guess nobody is going to say what those extra categories are, are >> they? > > Sorry, I was busy. I see KT as given a good summary (though I was not > counting forms in parentheses). > >> It's bad form to call somebody out on something but then refuse to tell >> them exactly what they've got wrong or have missed out. >> >> 3, 4, or maybe 5 mysterious categories of LHS assignment terms that I have >> never been encountered in a million lines of C code I've processed, but >> nobody is willing to say what they are? >> >> I sense a wind-up. > > You have implemented a C compiler. The wind-up I sensed was your giving > out misinformation, but I'll just have to take your word for it that > you've been arguing about assignments without know what constitutes an > lvalue expression. > > But when I didn't answer soon enough, surely you could have just looked > in any good C reference to find all the expression forms that are > lvalues. > >>>> I can think of at least one expression form for X that contradicts this >>>> claim. >>> Example? >> >> Nothing here either. > > f().m where f returns a struct. f().m is allowed with mcc and tcc compilers (but it doesn't do anything useful). It's not classed as an lvalue by gcc. By "the LHS of an assignment", and "X is a term of any complexity" I imply those X's forming valid LHS terms. An X used as X[i]=Y, *X=Y, or X.m=Y, or even any of the Y's, could be rejected for lots of reasons. That X isn't an array, pointer or struct for example. (BTW I've now counted the different categories of my own languages are there are about 15 in all that can be used as assignment targets. A lot are just terms that can appear as rvalues, that can also appear as lvalues. For example a 'switch' statement, which standard C doesn't even allow as an rvalue. Sorry, did your remark above suggest I don't know what an lvalue is? Maybe it's a miracle all this stuff works then!)