Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 10 Jul 2014 17:29:42 +0200
From:      Ed Schouten <ed@80386.nl>
To:        Pietro Cerutti <gahr@freebsd.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r268491 - head/usr.bin/users
Message-ID:  <CAJOYFBDZiEpQ5e86%2BdBhRZobSjdf785bKBwh%2B3Eywhzn_iJJCQ@mail.gmail.com>
In-Reply-To: <20140710152353.GF1812@ptrcrt.ch>
References:  <201407101215.s6ACF3v1055260@svn.freebsd.org> <CAJOYFBCQjjN7ep12zivnmFjfeeP1SeoYa963mQbMJr9DD%2BfUnw@mail.gmail.com> <20140710152353.GF1812@ptrcrt.ch>

next in thread | previous in thread | raw e-mail | index | archive | help
On 10 July 2014 17:23, Pietro Cerutti <gahr@freebsd.org> wrote:
> It's because of the standard library. Examples:
>
> /usr/include/c++/v1/memory:1454:47: error: unused parameter '__a'
> [-Werror,-Wunused-parameter]
>         static void construct(allocator_type& __a, _Tp* __p)
>
> /usr/include/c++/v1/__functional_base:85:12: error: cast from 'const
> volatile char *' to 'wchar_t *' increases required alignment from 1 to 4
> [-Werror,-Wcast-align]
>     return (_Tp*)&reinterpret_cast<const volatile char&>(__x);

Then I would suggest that these specific warnings (-Wunused-parameter)
were to be disabled for C++ programs. The actual consumers should not
have to lower their WARNS, simply because the standard library is
broken.

> Yes, except std::set implements bidirection iterators instead of random
> access iterators. Bidirectional iterators do not support arithmetic with
> integers, which I need to get to the previous-to-last element in the
> very next line of code.

The decrement operator is sufficient for this:

http://80386.nl/pub/20140710-users.txt

>> Even though I actually think C++ is a lot nicer than C, do we really
>> think it is actually worth proactively replacing already existent
>> tools? This specific tool has now become three times as big as the
>> previous version (7128 -> 23840 bytes).
>
> No, I'm not going to systematically replace everything with c++. The
> thing is, I had already begun to refactor a bit users(1), and this
> looked like the natural next step to me. Of course, here the trade off
> between code readability and object size shows.

With the patch above, the binary shrinks to 15640 bytes, so my
concerns are somewhat addressed. :-)

-- 
Ed Schouten <ed@80386.nl>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJOYFBDZiEpQ5e86%2BdBhRZobSjdf785bKBwh%2B3Eywhzn_iJJCQ>