🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #309894

Re: W której wersji standardu C lub C++ pracujecie?

#309894
From: PawelS pawel(at)wbcd(dot)pl
Date: Thu, 29 Aug 2019 16:03
48 lines
3389 bytes
Maciek Godek pisze:
> W dniu środa, 14 sierpnia 2019 19:24:46 UTC+2 użytkownik PawelS 
> 
>> Prawda. Nie wiem czy do tego zmierzasz, prawdopodobnie tak, że -Wall
>> to wcale nie włącza wszystkich dostępnych dla gcc opcji -W***
> 
> Tak, trzeba przyznać, że już sama nazwa jest myląca, no bo na moją znajomość języka angielskiego "all" oznacza wszystkie.
> Ale to jeszcze idzie przełknąć, zwłaszcza jak się wie o fladze -Wextra, która włącza dodatkowe warningi, których -Wall nie włącza.
Tak jak napisałem, jest to prawdopodobnie celowa nie konsekwencja:
int main() {
	char buffdata[256];
	char buffcopy[256];
	/*unsigned*/ char *sp1, *sp2;
	size_t ss;
	
	
	strncpy(buffdata, "test\"1234\"test", sizeof(buffdata));
	
	if ((sp1=strchr(buffdata,0x22))!=NULL && (sp2=strchr(sp1+1,0x22))!=NULL) {
		ss=sp2-sp1;
		if (sp2-sp1<sizeof(buffcopy)) strncpy(buffcopy, sp1+1, sp2-sp1-1);
		else                          strncpy(buffcopy, sp1+1, sizeof(buffcopy));
		printf("buffcopy=|%s|\n", buffcopy);
	}
	
	return 0;
}

test.c:16: warning: comparison between signed and unsigned
test.c:16: warning: passing argument 3 of '__builtin_strncpy' as unsigned due 
to prototype

Włączenie -Wconversion oznaczałoby często w powyższym przypadku
stosowanie rzutowania (size_t), ewentualnie stosowanie dodatkowej
zmiennej dla obliczania długości ciągu znaków. Co ciekawe
kompilator nie zgłasza tutaj ostrzeżenia konwersji:
ss=sp2-sp1;
a sp1, sp2 (char *) są ze znakiem,
natomiast ss (size_t) jest bez znaku.

Zgodnie z wcześniejszym wynikiem kompilacji:
uint32_t f(int32_t x) {
     return x*x;
}

x.c:3:13: warning: conversion to ‘uint32_t {aka unsigned int}’ from ‘int32_t 
{aka int}’ may change the sign of the result [-Wsign-conversion]
      return x*x;
Technical Details
Message-ID: <5d67f75a$0$525$65785112@news.neostrada.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!newsfeed.xs4all.nl!newsfeed8.news.xs4all.nl!85.12.16.70.MISMATCH!peer03.ams1!peer.ams1.xlned.com!news.xlned.com!peer03.fr7!futter-mich.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
References: <a1fbe21b-aed9-4b32-9691-a824c4e31a21@trust.no1> <3f1215b5-3c16-4248-a74f-1b57d21d4c98@googlegroups.com> <5d505a6e$0$17364$65785112@news.neostrada.pl> <d897b352-477c-42c0-ae44-f2df4bda7361@googlegroups.com> <5d52e072$0$521$65785112@news.neostrada.pl> <dc11d608-88c5-4511-bd8d-9e1922cd5e30@googlegroups.com> <5d5443dc$0$17361$65785112@news.neostrada.pl> <4bcfa95e-aaba-445f-9efe-e9008040fb75@googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!newsfeed.xs4all.nl!newsfeed8.news.xs4all.nl!85.12.16.70.MISMATCH!peer03.ams1!peer.ams1.xlned.com!news.xlned.com!peer03.fr7!futter-mich.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
Date: Thu, 29 Aug 2019 18:03:37 +0200
From: "PawelS pawel(at)wbcd(dot)pl" <fake@email.org>
User-Agent: Thunderbird 2.0.0.18 (X11/20081120)
MIME-Version: 1.0
Newsgroups: pl.comp.lang.c
Subject: Re: W której wersji standardu C lub C++ pracujecie?
References: <a1fbe21b-aed9-4b32-9691-a824c4e31a21@trust.no1> <3f1215b5-3c16-4248-a74f-1b57d21d4c98@googlegroups.com> <5d505a6e$0$17364$65785112@news.neostrada.pl> <d897b352-477c-42c0-ae44-f2df4bda7361@googlegroups.com> <5d52e072$0$521$65785112@news.neostrada.pl> <dc11d608-88c5-4511-bd8d-9e1922cd5e30@googlegroups.com> <5d5443dc$0$17361$65785112@news.neostrada.pl> <4bcfa95e-aaba-445f-9efe-e9008040fb75@googlegroups.com>
In-Reply-To: <4bcfa95e-aaba-445f-9efe-e9008040fb75@googlegroups.com>
Lines: 48
Message-ID: <5d67f75a$0$525$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 89.231.96.70
X-Trace: 1567094618 unt-rea-b-01.news.neostrada.pl 525 89.231.96.70:39739
X-Complaints-To: abuse@news.neostrada.pl
X-Received-Bytes: 3223
X-Received-Body-CRC: 3651725911
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit