This is the mail archive of the libstdc++@sourceware.cygnus.com mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

notes on CVS libstdc++ and CSV egcs



As of this,

1999-12-13  Benjamin Kosnik  <bkoz@gnu.org>

	Efforts to get -O2 to work with -Winline -Werrors.
	* bits/valarray_array.h (__valarray_fill(_Tp*, size_t, const
	_Tp&): Remove inline declaration, as cannot be inlined and
	-Winline -Werror complains. An interesting question is why this
	cannot be inlined, as I can see no real reason to disqualify it.
	(__valarray_product(const _Tp*, const _Tp*)): Same here.
	* bits/std_valarray.h (valarray::operator[](size_t)): Same here.
	
	* docs/17_intro/TODO: Update.

CVS libstdc++-v3 can be compiled with CVS egcs and -O2 -Winline
-Werrors, thus exercising the new tree-based inliner. I am a bit
worried that I had to undeclare functions like this as inline to get
it to compile cleanly:

  template<typename _Tp>
  _Tp&
  valarray<_Tp>::operator[] (size_t __i)
  { return _M_data[__i]; }

Perhaps there is more going on here than I have time to look at right now.

Gaby, perhaps you can look into this? I believe that gcc-2.95.2 also
couldn't inline this, so it isn't a regression per se, just something
that I'd think could be inlined. (There are also some valarray-related
things that I entered into the TODO list that you might want to take a
look at.)


-benjamin


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]