[Ada] Fix internal error on allocator with function call

2018-06-02 Thread Eric Botcazou
This is a regression present on all active branches.  The compiler aborts on 
an allocator taking a function call in the qualified expression when the 
result type is a discriminated record type with defaulted discriminants and a 
variant part, and whose maximal size is not statically known.

Fixed thusly, tested on x86-64/Linux, applied on all active branches.


2018-06-02  Eric Botcazou  

* gcc-interface/trans.c (Call_to_gnu): If this is a function call and
there is no target, also create a temporary for the return value for
an allocator if the type is an unconstrained record type with default
discriminant.


2018-06-02  Eric Botcazou  

* gnat.dg/discr53.ad[sb]: New test.
* gnat.dg/discr53_pkg.ads: New helper.

-- 
Eric BotcazouIndex: gcc-interface/trans.c
===
--- gcc-interface/trans.c	(revision 261006)
+++ gcc-interface/trans.c	(revision 261007)
@@ -4355,12 +4355,15 @@ Call_to_gnu (Node_Id gnat_node, tree *gn
 	  because we need to preserve the return value before copying back the
 	  parameters.
 
-   2. There is no target and the call is made for neither an object nor a
+   2. There is no target and the call is made for neither an object, nor a
 	  renaming declaration, nor a return statement, nor an allocator, and
 	  the return type has variable size because in this case the gimplifier
-	  cannot create the temporary, or more generally is simply an aggregate
-	  type, because the gimplifier would then create the temporary in the
-	  outermost scope instead of locally.
+	  cannot create the temporary, or more generally is an aggregate type,
+	  because the gimplifier would create the temporary in the outermost
+	  scope instead of locally.  But there is an exception for an allocator
+	  of an unconstrained record type with default discriminant because we
+	  allocate the actual size in this case, unlike the other 3 cases, so
+	  we need a temporary to fetch the discriminant and we create it here.
 
3. There is a target and it is a slice or an array with fixed size,
 	  and the return type has variable size, because the gimplifier
@@ -4379,8 +4382,9 @@ Call_to_gnu (Node_Id gnat_node, tree *gn
 	  && Nkind (Parent (gnat_node)) != N_Object_Declaration
 	  && Nkind (Parent (gnat_node)) != N_Object_Renaming_Declaration
 	  && Nkind (Parent (gnat_node)) != N_Simple_Return_Statement
-	  && !(Nkind (Parent (gnat_node)) == N_Qualified_Expression
-		   && Nkind (Parent (Parent (gnat_node))) == N_Allocator)
+	  && (!(Nkind (Parent (gnat_node)) == N_Qualified_Expression
+		&& Nkind (Parent (Parent (gnat_node))) == N_Allocator)
+		  || type_is_padding_self_referential (gnu_result_type))
 	  && AGGREGATE_TYPE_P (gnu_result_type)
 	  && !TYPE_IS_FAT_POINTER_P (gnu_result_type))
 	  || (gnu_target
package Discr53_Pkg is

  function Max return Natural;

end Discr53_Pkg;
--  { dg-do compile }

package body Discr53 is

   function F return Rec is
  Data : Rec;
   begin
  return Data;
   end;

   type Ptr is access Rec;

   procedure Proc is
  Local : Ptr;
   begin
  Local := new Rec'(F);
   end;

end Discr53;
with Discr53_Pkg;

package Discr53 is

   type Rec (D : Boolean := False) is record
  case D is
 when True  => S : String (1 .. Discr53_Pkg.Max);
 when False => null;
  end case;
   end record;

   function F return Rec;

   procedure Proc;

end Discr53;


[Ada] Fix crash on instantiation of Vectors package at -O3

2018-06-02 Thread Eric Botcazou
This is a regression present on the mainline, 8 and 7 branches.  It's a latent 
tree sharing issue exposed by the use of SSA names during gimplification that 
has been introduced in the GCC 7 development phase.

Fixed thusly, tested on x86-64/Linux, applied on mainline, 8 and 7 branches.


2018-06-02  Eric Botcazou  

* gcc-interface/ada-tree.h (TYPE_PADDING_FOR_COMPONENT): New macro.
* gcc-interface/decl.c (gnat_to_gnu_component_type): Cache the padding
type built for an aliased component with variable size.


2018-06-02  Eric Botcazou  

* gnat.dg/specs/opt3.ads: New test.
* gnat.dg/specs/opt3_pkg.ads: New helper.

-- 
Eric Botcazoupackage Opt3_Pkg is

  function Max return Natural;

end Opt3_Pkg;
-- { dg-do compile }
-- { dg-options "-O3" }

with Ada.Containers.Vectors;
with Opt3_Pkg;

package Opt3 is

  type Arr is array (1 .. Opt3_Pkg.Max) of Integer;

  package Arr_Container is new Ada.Containers.Vectors (Natural, Arr);

end Opt3;
Index: gcc-interface/ada-tree.h
===
--- gcc-interface/ada-tree.h	(revision 261101)
+++ gcc-interface/ada-tree.h	(working copy)
@@ -6,7 +6,7 @@
  *  *
  *  C Header File   *
  *  *
- *  Copyright (C) 1992-2017, Free Software Foundation, Inc. *
+ *  Copyright (C) 1992-2018, Free Software Foundation, Inc. *
  *  *
  * GNAT is free software;  you can  redistribute it  and/or modify it under *
  * terms of the  GNU General Public License as published  by the Free Soft- *
@@ -235,6 +235,11 @@ do {			 \
refer to the routine gnat_to_gnu_entity.  */
 #define TYPE_CI_CO_LIST(NODE) TYPE_LANG_SLOT_1 (FUNCTION_TYPE_CHECK (NODE))
 
+/* For an ARRAY_TYPE with variable size, this is the padding type built for
+   the array type when it is itself the component type of another array.  */
+#define TYPE_PADDING_FOR_COMPONENT(NODE) \
+  (TYPE_LANG_SLOT_1 (ARRAY_TYPE_CHECK (NODE)))
+
 /* For a VECTOR_TYPE, this is the representative array type.  */
 #define TYPE_REPRESENTATIVE_ARRAY(NODE) \
   TYPE_LANG_SLOT_1 (VECTOR_TYPE_CHECK (NODE))
Index: gcc-interface/decl.c
===
--- gcc-interface/decl.c	(revision 261101)
+++ gcc-interface/decl.c	(working copy)
@@ -5031,17 +5031,6 @@ gnat_to_gnu_component_type (Entity_Id gn
 		 Is_Bit_Packed_Array (gnat_array) ? TYPE_DECL : VAR_DECL,
 		 true, Has_Component_Size_Clause (gnat_array));
 
-  /* If the array has aliased components and the component size can be zero,
- force at least unit size to ensure that the components have distinct
- addresses.  */
-  if (!gnu_comp_size
-  && Has_Aliased_Components (gnat_array)
-  && (integer_zerop (TYPE_SIZE (gnu_type))
-	  || (TREE_CODE (gnu_type) == ARRAY_TYPE
-	  && !TREE_CONSTANT (TYPE_SIZE (gnu_type)
-gnu_comp_size
-  = size_binop (MAX_EXPR, TYPE_SIZE (gnu_type), bitsize_unit_node);
-
   /* If the component type is a RECORD_TYPE that has a self-referential size,
  then use the maximum size for the component size.  */
   if (!gnu_comp_size
@@ -5049,6 +5038,13 @@ gnat_to_gnu_component_type (Entity_Id gn
   && CONTAINS_PLACEHOLDER_P (TYPE_SIZE (gnu_type)))
 gnu_comp_size = max_size (TYPE_SIZE (gnu_type), true);
 
+  /* If the array has aliased components and the component size is zero, force
+ the unit size to ensure that the components have distinct addresses.  */
+  if (!gnu_comp_size
+  && Has_Aliased_Components (gnat_array)
+  && integer_zerop (TYPE_SIZE (gnu_type)))
+gnu_comp_size = bitsize_unit_node;
+
   /* Honor the component size.  This is not needed for bit-packed arrays.  */
   if (gnu_comp_size && !Is_Bit_Packed_Array (gnat_array))
 {
@@ -5071,6 +5067,30 @@ gnat_to_gnu_component_type (Entity_Id gn
 			  gnat_array);
 }
 
+  /* This is a very special case where the array has aliased components and the
+ component size might be zero at run time.  As explained above, we force at
+ least the unit size but we don't want to build a distinct padding type for
+ each invocation (they are not canonicalized if they have variable size) so
+ we cache this special padding type as TYPE_PADDING_FOR_COMPONENT.  */
+  else if (Has_Aliased_Components (gnat_array)
+	   && TREE_CODE (gnu_type) == ARRAY_TYPE
+	   && !TREE_CONSTANT (TYPE_SIZE (gnu_type)))
+{
+  if (TYPE_PADDING_FOR_COMPONENT (gnu_type))
+	gnu_type = TYPE_PADDING_FOR_COMPONENT (gnu_type);
+  else
+	{
+	  gnu_comp_size
+	= size_binop (MAX_EXPR, TYPE_SIZE (gnu_type), bitsize_unit_node);
+	  TYPE_PADDING_FOR_COMPONENT (gnu_type)
+	= maybe_pad_type (gnu_type, gnu_comp_size, 0, gnat_array,

[Ada] Fix couple of crashes in -gnatc mode

2018-06-02 Thread Eric Botcazou
In this mode gigi doesn't fully translate the expanded code.

Fixed thusly, tested on x86-64/Linux, applied on mainline and 8 branch.


2018-06-02  Eric Botcazou  

* gcc-interface/decl.c (gnat_to_gnu_entity) : If this is
not a definition, retrieve the expression only if it's a compile-time
known value if we are just annotating types.

* gcc-interface/utils.c (convert): Do not try to upcast properly for a
conversion between tagged types in type_annotate_only mode.

-- 
Eric BotcazouIndex: gcc-interface/decl.c
===
--- gcc-interface/decl.c	(revision 261106)
+++ gcc-interface/decl.c	(working copy)
@@ -601,16 +601,16 @@ gnat_to_gnu_entity (Entity_Id gnat_entit
 	 was defined to represent.  This is necessary to avoid generating dumb
 	 elaboration code in simple cases, but we may throw it away later if it
 	 is not a constant.  But do not retrieve it if it is an allocator since
-	 the designated type might still be dummy at this point.  */
+	 the designated type might still be dummy at this point.  Note that we
+	 invoke gnat_to_gnu_external and not gnat_to_gnu because the expression
+	 may contain N_Expression_With_Actions nodes and thus declarations of
+	 objects from other units that we need to discard.  */
   if (!definition
 	  && !No_Initialization (Declaration_Node (gnat_entity))
-	  && Present (Expression (Declaration_Node (gnat_entity)))
-	  && Nkind (Expression (Declaration_Node (gnat_entity)))
-	 != N_Allocator)
-	  /* The expression may contain N_Expression_With_Actions nodes and
-	 thus object declarations from other units.  Discard them.  */
-	gnu_expr
-	  = gnat_to_gnu_external (Expression (Declaration_Node (gnat_entity)));
+	  && Present (gnat_temp = Expression (Declaration_Node (gnat_entity)))
+	  && Nkind (gnat_temp) != N_Allocator
+	  && (!type_annotate_only || Compile_Time_Known_Value (gnat_temp)))
+	gnu_expr = gnat_to_gnu_external (gnat_temp);
 
   /* ... fall through ... */
 
Index: gcc-interface/utils.c
===
--- gcc-interface/utils.c	(revision 261101)
+++ gcc-interface/utils.c	(working copy)
@@ -4631,9 +4631,12 @@ convert (tree type, tree expr)
 	   etype)))
 return build1 (VIEW_CONVERT_EXPR, type, expr);
 
-  /* If we are converting between tagged types, try to upcast properly.  */
+  /* If we are converting between tagged types, try to upcast properly.
+ But don't do it if we are just annotating types since tagged types
+ aren't fully laid out in this mode.  */
   else if (ecode == RECORD_TYPE && code == RECORD_TYPE
-	   && TYPE_ALIGN_OK (etype) && TYPE_ALIGN_OK (type))
+	   && TYPE_ALIGN_OK (etype) && TYPE_ALIGN_OK (type)
+	   && !type_annotate_only)
 {
   tree child_etype = etype;
   do {


Re: [wwwdocs] Describe how to validate wwwdocs changes

2018-06-02 Thread Gerald Pfeifer
On Mon, 14 May 2018, Martin Sebor wrote:
>> Martin, what do you think?  Would that have avoided the challenges
>> your ran into?  Anything to better clarify or otherwise improve?
> Thanks for the improvement!  I think it will help going forward

Great, I (finally) committed this now, business travel not exactly
having been helpful with my GCC engagements...

> assuming one knows about the page and remembers to check it.
> I have to confess I forgot about it so I didn't check it before
> running the validator the last time.  Would it be possible to add
> the snippet to each page permanently?

You mean, avoiding preprocessing and making the change permanent,
directly as part of every .html file?

I've been hesitant doing that to keep things simple and easier to
change (and not bother folks), but think this makes sense and plan
on doing that as we migrate our pages to HTML 5 which will drastically
reduce the size of that snippet also.  I expect to find time to do 
so in the coming few months, and things should indeed be simpler than.


One improvement I just made is to add a reference to 
  https://gcc.gnu.org/about.html 
to the automated checker that runs after each commit.  That provides 
more background then.

> Alternatively, what do you think of the idea to have a script (or
> makefile) to post-process changes to these pages on the client side,
> before checking them in?  I.e., adding the example annotation David
> Malcolm prefers (black background) and also validating the HTML).

That's a great idea.  Sadly our post-processing relies on MetaHTML,
a GNU projects that was handled in, umm, a less than optimal manner,
and has been in coma for years and thus does not build with current
compilers on current operating system versions.

At least GCC Summit in Praha David and me chatted about it, and he
was thinking to (re)implement the key functionality we use in Python,
so let me include him here.

(In any case, with the move to CSS and the forthcoming move to HTML 5
that dependency has been and will be reducing over time.)

Gerald


[wwwdocs] Simplify our template for headers

2018-06-02 Thread Gerald Pfeifer
HTML 5 only supports the  syntax we have been 
using "forever" for backwards compatibility.

We could use  which is documented as follows

  "For link elements, the author keyword indicates that the referenced 
  document provides further information about the author for the page 
  as a whole."

but I don't see how this s really beneficial for us, so let's just
simplify this.

Applied.

Gerald

Index: style.mhtml
===
RCS file: /cvs/gcc/wwwdocs/htdocs/style.mhtml,v
retrieving revision 1.142
diff -u -r1.142 style.mhtml
--- style.mhtml 29 Jan 2018 10:00:39 -  1.142
+++ style.mhtml 2 Jun 2018 11:32:19 -
@@ -48,13 +48,11 @@
  
   
-mailto:g...@gcc.gnu.org"; />
 https://gcc.gnu.org/favicon.ico"; />
 https://gcc.gnu.org/gcc.css"; 
/>
   >
   
-mailto:g...@gcc.gnu.org";>
 https://gcc.gnu.org/favicon.ico";>
 
   >


[wwwdocs] Replace by id= attributes

2018-06-02 Thread Gerald Pfeifer
As I mentioned, I'm working to transition our pages to HTML which
should not be too hard after my transition to CSS over the past years,
but there are some changes we still need to account for.

In HTML 5 the  approach has been superseded by 
the use of id attributes.

This implements this change for all pages associated with active
releases.

Applied.

Gerald

Index: gcc-6/changes.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-6/changes.html,v
retrieving revision 1.102
diff -u -r1.102 changes.html
--- gcc-6/changes.html  4 Jul 2017 07:26:28 -   1.102
+++ gcc-6/changes.html  2 Jun 2018 11:49:09 -
@@ -857,7 +857,7 @@
   
 
 
-GCC 6.2
+GCC 6.2
 
 This is the https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=6.2";>list
 of problem reports (PRs) from GCC's bug tracking system that are
@@ -875,7 +875,7 @@
 Support for the VIS 4.0 instruction set has been added.
   
 
-GCC 6.3
+GCC 6.3
 
 This is the https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=6.3";>list
 of problem reports (PRs) from GCC's bug tracking system that are
@@ -892,7 +892,7 @@
 pcommit instruction has been removed.
   
 
-GCC 6.4
+GCC 6.4
 
 This is the https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=6.4";>list
 of problem reports (PRs) from GCC's bug tracking system that are
@@ -909,7 +909,7 @@
 
 
 
-GCC 7.2
+GCC 7.2
 
 This is the https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.2";>list
 of problem reports (PRs) from GCC's bug tracking system that are
@@ -1311,7 +1311,7 @@

 
 
-GCC 7.3
+GCC 7.3
 
 This is the https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.3";>list
 of problem reports (PRs) from GCC's bug tracking system that are
Index: gcc-7/index.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-7/index.html,v
retrieving revision 1.5
diff -u -r1.5 index.html
--- gcc-7/index.html25 Jan 2018 08:11:49 -  1.5
+++ gcc-7/index.html2 Jun 2018 11:49:10 -
@@ -21,19 +21,19 @@
 
 
 GCC 7.3
-Jan 25, 2018
+Jan 25, 2018
 (changes,
  http://gcc.gnu.org/onlinedocs/7.3.0/";>documentation)
 
 
 GCC 7.2
-Aug 14, 2017
+Aug 14, 2017
 (changes,
  http://gcc.gnu.org/onlinedocs/7.2.0/";>documentation)
 
 
 GCC 7.1
-May 2, 2017
+May 2, 2017
 (changes,
  http://gcc.gnu.org/onlinedocs/7.1.0/";>documentation)
 
Index: gcc-8/changes.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-8/changes.html,v
retrieving revision 1.84
diff -u -r1.84 changes.html
--- gcc-8/changes.html  25 May 2018 18:13:17 -  1.84
+++ gcc-8/changes.html  2 Jun 2018 11:49:11 -
@@ -1285,7 +1285,7 @@
 
 
 
-GCC 8.1
+GCC 8.1
 
 This is the https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=8.0";>list
 of problem reports (PRs) from GCC's bug tracking system that are
Index: gcc-8/index.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-8/index.html,v
retrieving revision 1.2
diff -u -r1.2 index.html
--- gcc-8/index.html2 May 2018 10:21:15 -   1.2
+++ gcc-8/index.html2 Jun 2018 11:49:11 -
@@ -21,7 +21,7 @@
 
 
 GCC 8.1
-May 2, 2018
+May 2, 2018
 (changes,
  http://gcc.gnu.org/onlinedocs/8.1.0/";>documentation)
 
Index: gcc-9/changes.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-9/changes.html,v
retrieving revision 1.4
diff -u -r1.4 changes.html
--- gcc-9/changes.html  2 Jun 2018 09:21:26 -   1.4
+++ gcc-9/changes.html  2 Jun 2018 11:49:11 -
@@ -142,7 +142,7 @@
 
 
 
-
+
 
 
 


Re: std::vector default default and move constructors

2018-06-02 Thread François Dumont

Hi

    Here is this patch again, I consider all your remarks and also made 
some changes considering feedback on rbtree patch.


    * include/bits/stl_vector.h
    (struct _Vector_base<>::_Vector_impl_data): New.
    (struct _Vector_base<>::_Vector_impl): Inherit from latter.
    (_Vector_base<>::_Vector_impl::_M_swap_data): Move...
    (_Vector_base<>::_Vector_impl_data::_M_swap_data): ...here.
    (_Vector_base<>::_Vector_impl()): Add noexcept qualification.
    (_Vector_base<>::_Vector_impl(_Vector_impl&&)): New.
    (_Vector_base<>::_Vector_impl(_Tp_alloc_type&&, _Vector_impl&&)): New.
    (_Vector_base(const allocator_type&, _Vector_base&&)): New, use latter.
    (_Vector_base()): Default.
    (_Vector_base(_Vector_base&&)): Default.
    (_Vector_base(size_t)) [_GLIBCXX_INLINE_VERSION]: Delete.
    (_Vector_base(_Tp_alloc_type&&)) [_GLIBCXX_INLINE_VERSION]: Delete.
    (_Vector_base::_M_create_storage(size_t)): Make protected.
    (vector()): Default.
    (vector(vector&&)): Default.
    (vector(vector&&, const allocator_type&, true_type)): New.
    (vector(vector&&, const allocator_type&, false_type)): New.
    (vector(vector&&, const allocator_type&)): Use latters.
    (vector(_InputIte, _InputIte, const allocator_type&)): Call
    _M_range_initialize directly.
    * testsuite/23_containers/vector/allocator/default_init.cc: New.
    * testsuite/23_containers/vector/cons/noexcept_move_construct.cc: Add
    static assertions.

    Tested under Linux x86_64, normal and debug modes.

Ok to commit ?

François
diff --git a/libstdc++-v3/include/bits/stl_vector.h b/libstdc++-v3/include/bits/stl_vector.h
index acec501..7531ef4 100644
--- a/libstdc++-v3/include/bits/stl_vector.h
+++ b/libstdc++-v3/include/bits/stl_vector.h
@@ -85,34 +85,58 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
   typedef typename __gnu_cxx::__alloc_traits<_Tp_alloc_type>::pointer
	pointer;
 
-  struct _Vector_impl
-  : public _Tp_alloc_type
+  struct _Vector_impl_data
   {
 	pointer _M_start;
 	pointer _M_finish;
 	pointer _M_end_of_storage;
 
-	_Vector_impl()
-	: _Tp_alloc_type(), _M_start(), _M_finish(), _M_end_of_storage()
-	{ }
-
-	_Vector_impl(_Tp_alloc_type const& __a) _GLIBCXX_NOEXCEPT
-	: _Tp_alloc_type(__a), _M_start(), _M_finish(), _M_end_of_storage()
+	_Vector_impl_data() _GLIBCXX_NOEXCEPT
+	: _M_start(), _M_finish(), _M_end_of_storage()
 	{ }
 
 #if __cplusplus >= 201103L
-	_Vector_impl(_Tp_alloc_type&& __a) noexcept
-	: _Tp_alloc_type(std::move(__a)),
-	  _M_start(), _M_finish(), _M_end_of_storage()
-	{ }
+	_Vector_impl_data(_Vector_impl_data&& __x) noexcept
+	: _M_start(__x._M_start), _M_finish(__x._M_finish),
+	  _M_end_of_storage(__x._M_end_of_storage)
+	{ __x._M_start = __x._M_finish = __x._M_end_of_storage = pointer(); }
 #endif
 
-	void _M_swap_data(_Vector_impl& __x) _GLIBCXX_NOEXCEPT
+	void
+	_M_swap_data(_Vector_impl_data& __x) _GLIBCXX_NOEXCEPT
 	{
 	  std::swap(_M_start, __x._M_start);
 	  std::swap(_M_finish, __x._M_finish);
 	  std::swap(_M_end_of_storage, __x._M_end_of_storage);
 	}
+  };
+
+  struct _Vector_impl
+	: public _Tp_alloc_type, public _Vector_impl_data
+  {
+	_Vector_impl() _GLIBCXX_NOEXCEPT_IF( noexcept(_Tp_alloc_type()) )
+	: _Tp_alloc_type()
+	{ }
+
+	_Vector_impl(_Tp_alloc_type const& __a) _GLIBCXX_NOEXCEPT
+	: _Tp_alloc_type(__a)
+	{ }
+
+#if __cplusplus >= 201103L
+	// Not defaulted to avoid noexcept qualification dependency on the
+	// _Tp_alloc_type move constructor one.
+	_Vector_impl(_Vector_impl&& __x) noexcept
+	: _Tp_alloc_type(std::move(__x)), _Vector_impl_data(std::move(__x))
+	{ }
+
+	_Vector_impl(_Tp_alloc_type&& __a) noexcept
+	: _Tp_alloc_type(std::move(__a))
+	{ }
+
+	_Vector_impl(_Tp_alloc_type&& __a, _Vector_impl&& __rv) noexcept
+	: _Tp_alloc_type(std::move(__a)), _Vector_impl_data(std::move(__rv))
+	{ }
+#endif
 
 #if _GLIBCXX_SANITIZE_STD_ALLOCATOR && _GLIBCXX_SANITIZE_VECTOR
 	template
@@ -235,38 +259,42 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
 
   _Tp_alloc_type&
   _M_get_Tp_allocator() _GLIBCXX_NOEXCEPT
-  { return *static_cast<_Tp_alloc_type*>(&this->_M_impl); }
+  { return this->_M_impl; }
 
   const _Tp_alloc_type&
   _M_get_Tp_allocator() const _GLIBCXX_NOEXCEPT
-  { return *static_cast(&this->_M_impl); }
+  { return this->_M_impl; }
 
   allocator_type
   get_allocator() const _GLIBCXX_NOEXCEPT
   { return allocator_type(_M_get_Tp_allocator()); }
 
-  _Vector_base()
-  : _M_impl() { }
+#if __cplusplus >= 201103L
+  _Vector_base() = default;
+#else
+  _Vector_base() { }
+#endif
 
   _Vector_base(const allocator_type& __a) _GLIBCXX_NOEXCEPT
   : _M_impl(__a) { }
 
+#if !_GLIBCXX_INLINE_VERSION
   _Vector_base(size_t __n)
   : _M_impl()
   { _M_create_storage(__n); }
+#endif
 
   _Vector_base(size_t __n, const allocator_type& __a)
   : _M_impl(__a)
   { _M_create_storage(__n); }
 
 #if __cplusplus >= 201103L
+  _Vector_base(_Vector_base&&)

Re: [wwwdocs] Describe how to validate wwwdocs changes

2018-06-02 Thread Gerald Pfeifer
On Tue, 15 May 2018, David Malcolm wrote:
> Possibly a silly question, but why can't we just change all the 
> headers in the site source to be this?
> 
> Is is something to do with the conversion toolchain?

Yes.  Though having spent the last hour looking into this in more
detail, I believe we can move faster than I had originally thought.

For example, I should be able to get the stylesheet information
added to all pages, so they look decent when viewing locally, as
a next step (possibly even today ;-).

I hope that'll help?

Gerald


[wwwdocs] projects/tree-ssa/vectorization.html - update link to GCC Summit Proceedings

2018-06-02 Thread Gerald Pfeifer
This is a change I found on my disk that dates back more than a year;
I don't recall the trigger back then, but verified it still works and
applied it.

Use the version of the proceedings we've got on our FTP site.  Makes
for a simpler, more stable link.

Gerald

Index: projects/tree-ssa/vectorization.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/projects/tree-ssa/vectorization.html,v
retrieving revision 1.32
diff -u -r1.32 vectorization.html
--- projects/tree-ssa/vectorization.html29 May 2016 08:11:26 -  
1.32
+++ projects/tree-ssa/vectorization.html2 Jun 2018 12:26:51 -
@@ -1524,8 +1524,7 @@
 
 "Loop-Aware SLP in GCC", Ira Rosen, Dorit Nuzman
 and Ayal Zaks, GCC summit, July 2007.
-https://gcc.gnu.org/wiki/HomePage?action=AttachFile&do=view&target=GCC2007-Proceedings.pdf";>
-
https://gcc.gnu.org/wiki/HomePage?action=AttachFile&do=view&target=GCC2007-Proceedings.pdf
+   ftp://gcc.gnu.org/pub/gcc/summit/2006-GCC-Summit-Proceedings.pdf";>GCC 
Summit 2007 Proceedings
 
 "Autovectorization in GCC - two years later", Dorit Nuzman and 
Ayal Zaks, 
 GCC summit, June 2006.



[wwwdocs] www.boost.org has moved to https

2018-06-02 Thread Gerald Pfeifer
On the way, also remove obsolete information on how to download it
(which, as a side effect, reduces the number of links that can get
broken).

Applied.

Gerald

Index: readings.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/readings.html,v
retrieving revision 1.292
diff -u -r1.292 readings.html
--- readings.html   19 Mar 2018 00:02:36 -  1.292
+++ readings.html   2 Jun 2018 12:37:58 -
@@ -370,7 +370,7 @@
 
 
   https://math.nist.gov/tnt/";>Template Numeric Toolkit
-  http://www.boost.org";>The Boost C++ Libraries
+  https://www.boost.org";>The Boost C++ Libraries
 
 
 
Index: gcc-3.4/changes.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-3.4/changes.html,v
retrieving revision 1.164
diff -u -r1.164 changes.html
--- gcc-3.4/changes.html2 Apr 2018 15:22:37 -   1.164
+++ gcc-3.4/changes.html2 Jun 2018 12:37:59 -
@@ -103,7 +103,7 @@
 detect whether multi-threaded code is being compiled might
 change in meaning, possibly resulting in linker errors for
 single-threaded programs.
-Affected users of Boost should
+Affected users of https://www.boost.org";>Boost should
 compile single-threaded code with -DBOOST_DISABLE_THREADS.
 See Bugzilla for
 more
Index: testing/testing-boost.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/testing/testing-boost.html,v
retrieving revision 1.6
diff -u -r1.6 testing-boost.html
--- testing/testing-boost.html  29 Jun 2014 18:50:44 -  1.6
+++ testing/testing-boost.html  2 Jun 2018 12:37:59 -
@@ -8,14 +8,12 @@
 Boost build and test guide
 
 This page is a guide to running the testing and timing programs for the
-http://www.boost.org/";>Boost class libraries as part of
+https://www.boost.org";>Boost class libraries as part of
 GCC integration testing.
 
 Resource usage
 
-Boost distributions are available from SourceForge, linked from the
-http://www.boost.org/";>Boost web site.
-These instructions are for version 1.27.0, whose gzipped tar file is
+These instructions are for version 1.27.0, whose gzipped tar file is
 3.8 MB.  The uncompressed distribution comprises some 16 MB of source files.
 Building the library and tests adds between 80 and 140 MB of
 object files and executables to this.


Re: [PATCH, i386]: Fix PR85950, Unsafe-math-optimizations regresses optimization using SSE4.1 roundss

2018-06-02 Thread H.J. Lu
On Tue, May 29, 2018 at 11:38 AM, Uros Bizjak  wrote:
> Hello!
>
> Attached patch enables l2 for
> TARGET_SSE4.1, and while there, also corrects operand 1 predicate of
> rounds{s,d} instruction.
>
> 2018-05-29  Uros Bizjak  
>
> PR target/85950
> * config/i386/i386.md (l2):
> Enable for TARGET_SSE4_1 and generate rounds{s,d} and cvtts{s,d}2si{,q}
> sequence.
> (sse4_1_round2): Use nonimmediate_operand
> for operand 1 predicate.
>
> testsuite/ChangeLog:
>
> 2018-05-29  Uros Bizjak  
>
> PR target/85950
> * gcc.target/i386/pr85950.c: New test.
>
> Bootstrapped and regression tested on x86_64-linux-gnu {,-m32}.
>
> Committed to mainline SVN.
>

The testcase needs -mno-avx512f.   Otherwise -march=native on AVX512
machine will generate

vrndscalesd $9, %xmm0, %xmm0, %xmm0
vcvttsd2siq %xmm0, %rax

instead of

vroundsd $9, %xmm0, %xmm0, %xmm0
vcvttsd2siq %xmm0, %rax


-- 
H.J.


[wwwdocs] Fix name of Assignee Bugzilla field in bugs/management.html

2018-06-02 Thread Gerald Pfeifer
Applied after verifying that what is described here actually really
happens in Bugzilla (just with the slightly different name of that
field).

Gerald

Index: bugs/management.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/bugs/management.html,v
retrieving revision 1.34
diff -u -r1.34 management.html
--- bugs/management.html26 Nov 2017 22:02:25 -  1.34
+++ bugs/management.html2 Jun 2018 19:59:42 -
@@ -156,7 +156,7 @@
 more important to fix in  GCC 7 than a regression that was introduced in GCC 5
 (and is still present in GCC 6 and 7).
 
-Assigned To
+Assignee
 
 This is the person in charge of resolving the bug.  Every time this
 field changes, the status changes to NEW to make it easy to see


[wwwdocs,Java] Remove "less recent" Java news

2018-06-02 Thread Gerald Pfeifer
This is the last page we still carried from GCJ, and it has not
been linked internally. 

I had marked this to possibly merge into our general News page,
but clearly have not been able to get to it for two years now 
and else nobody cared either, and it was me keeping it for that
purpose (only), time to remove it.

Applied.

Gerald

Index: java/news.html
===
RCS file: java/news.html
diff -N java/news.html
--- java/news.html  23 Aug 2016 11:43:20 -  1.21
+++ /dev/null   1 Jan 1970 00:00:00 -
@@ -1,697 +0,0 @@
-
-
-
-GCJ - Less Recent News
-
-
-
-
-GCJ - Less Recent News
-
-
-
-
-
-January 16, 2006
-Mark Wielaard has imported http://www.gnu.org/software/classpath/";>GNU Classpath 0.20 (http://www.gnu.org/software/classpath/announce/20060113.html";>release
-notes) into GCJ.
-
-November 17, 2005
-Mark Wielaard has imported http://www.gnu.org/software/classpath/";>GNU Classpath 0.19 (http://www.gnu.org/software/classpath/announce/20051102.html";>release
-notes) into GCJ.
-
-October 12, 2005
-The October 2005 issue of Red Hat Magazine contains the article
-"The State of Java on Linux" by Tom Tromey.
-
-September 23, 2005
-Tom Tromey has imported http://www.gnu.org/software/classpath/";>GNU Classpath 0.18 (http://www.gnu.org/software/classpath/announce/20050906.html";>release
-notes) into GCJ.
-
-July 15, 2005
-Tom Tromey has https://gcc.gnu.org/ml/java-patches/2005-q3/msg00093.html";>integrated
-http://www.gnu.org/software/classpath/";>GNU Classpath into the
-GCJ build in such a way that it becomes https://gcc.gnu.org/ml/java/2005-05/msg00202.html";>much easier to
-import the latest GNU Classpath into GCJ. This particular import brings in GNU
-Classpath 0.17 (http://www.gnu.org/software/classpath/announce/20050715.html";>release
-notes).
-
-April 6, 2005
-Mark Wielaard has written "http://lwn.net/Articles/130796/";>GCJ - past, present, and
-future" for LWN.net.
-
-March 10, 2005
-Bryce McKinlay has merged in https://gcc.gnu.org/ml/java-patches/2005-q1/msg00712.html";>a new stack
-trace mechanism that is based on GCC's unwind support and provides
-cleaner and faster stack traces.
-
-February 15, 2005
-Thomas Fitzsimmons has checked in an implementation of libjawt, the
-AWT Native interface.  Among other things, this enables the JOGL
-(OpenGL for Java) bindings to work.
-
-February 1, 2005
-We've merged GNU JAXP into the core.  This includes many classes
-in javax.xml, plus updated versions
-of org.xml.sax and org.w3c.dom.
-
-November 25, 2004
-
-John David Anglin checked in https://gcc.gnu.org/ml/gcc-patches/2004-11/msg02214.html";>a patch
-to enable libjava to be built by default on hppa-unknown-linux-gnu.
-
-
-November 22, 2004
-
-We're pleased to announce that the GCJ binary compatibility branch has
-been merged to the trunk.  This work includes a new ABI which allows
-precompiled code to follow the binary compatibility rules of the Java
-programming language.
-
-
-September 21, 2004
-
-Andreas Tobler imported the new javax.crypto,
-javax.crypto.interfaces, javax.crypto.spec,
-javax.net, javax.net.ssl,
-javax.security.auth, javax.security.auth.callback,
-javax.security.auth.login, javax.security.auth.x500,
-javax.security.sasl and org.ietf.jgss
-packages from the latest
-http://www.gnu.org/software/classpath/";>GNU Classpath 0.11
-developer snapshot release.  These packages will be an official part of
-then next major release.  Extra crypto algorithms can be obtained
-from the http://www.gnu.org/software/gnu-crypto/";>GNU Crypto
-project, a full TLS implementation is provided by the Jessie project.
-
-
-July 16, 2004
-
-AWT and Swing support continues to improve rapidly. Thomas Fitzsimmons of Red 
Hat
-added support for the AWT 1.0 event model, still used by many web
-applets. This means that Slime Volleyball now runs on GCJ and gcjwebplugin.
-
-
-July 16, 2004
-
-GCJ in the press! The July issue of Linux Journal
-features an article on building the Eclipse IDE to native code using GCJ:
-http://www.linuxjournal.com/article/7413";>Eclipse
-goes native. The July issue of Doctor Dobbs Journal also 
-features an article (not available online) on GCJ and the Compiled Native 
-Interface (https://gcc.gnu.org/onlinedocs/gcj/About-CNI.html";>CNI).
-
-
-March 9, 2004
-
-Thanks to Wes Biggs and the other GNU Regexp authors, Mark Wielaard
-(for merging into Classpath) and Anthony Green (for merging into
-libgcj), we now have support for java.util.regex.  This
-arrives a little too late for gcc 3.4, but it will appear in the next
-major release.
-
-
-January 22, 2004
-
-Graydon Hoare has checked in
-https://gcc.gnu.org/ml/java-patches/2004-q1/msg00241.html";>a
-patch to implement Swing buttons.  This is the first working Swing code,
-a major improvement.  See the screen shot.
-
-
-January 9, 2004
-
-Andrew Haley has checked in
-https://gcc.gnu.org/ml/gcc-patches/2004-01/msg00362.html";>a
-large reorganization of -findirect-dispatch.  This is
-a

Re: [wwwdocs] Replace by id= attributes

2018-06-02 Thread Gerald Pfeifer
On Sat, 2 Jun 2018, Gerald Pfeifer wrote:
> In HTML 5 the  approach has been superseded by 
> the use of id attributes.
> 
> This implements this change for all pages associated with active
> releases.

Hmpf, I missed that id attributes have to start with a letter; 
fixed thusly for the GCC8 pages.  I'll take care of the others
later.

Committed.

Gerald

Index: changes.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-8/changes.html,v
retrieving revision 1.86
diff -u -r1.86 changes.html
--- changes.html2 Jun 2018 21:16:18 -   1.86
+++ changes.html2 Jun 2018 21:50:38 -
@@ -1286,7 +1286,7 @@
 
 
 
-GCC 8.1
+GCC 8.1
 
 This is the https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=8.0";>list
 of problem reports (PRs) from GCC's bug tracking system that are
Index: index.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-8/index.html,v
retrieving revision 1.4
diff -u -r1.4 index.html
--- index.html  2 Jun 2018 21:16:18 -   1.4
+++ index.html  2 Jun 2018 21:50:38 -
@@ -22,7 +22,7 @@
 
 
 GCC 8.1
-May 2, 2018
+May 2, 2018
 (changes,
  http://gcc.gnu.org/onlinedocs/8.1.0/";>documentation)
 


[wwwdocs] Push references to our CSS into individual HTML files

2018-06-02 Thread Gerald Pfeifer
This is based on a mail exchange with David and Martin, where I
promised to look into it.

It moves the inclusion of our CSS stylesheet from the preprocessing
conducted on gcc.gnu.org into the individual HTML files.

Clearly it is a tradeoff between having this once versus the very
same reference in 271 individual HTML files on the one hand, and
making it easier to view changes locally while working on them.

Assuming we remain disciplined in not creating all sorts of variations
that become a consistency and maintenance nightmare, making things
easier for those editing those page, a larger group, feels like the
right tradeoff.

Applied.

Gerald

Push the references to our CSS from the MetaHTML style sheet into the
individual HTML files.

Index: style.mhtml
===
RCS file: /cvs/gcc/wwwdocs/htdocs/style.mhtml,v
retrieving revision 1.143
diff -u -r1.143 style.mhtml
--- style.mhtml 2 Jun 2018 11:40:23 -   1.143
+++ style.mhtml 2 Jun 2018 20:31:23 -
@@ -49,7 +49,6 @@
   
 https://gcc.gnu.org/favicon.ico"; />
-https://gcc.gnu.org/gcc.css"; 
/>
   >
   
Index: about.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/about.html,v
retrieving revision 1.29
diff -u -r1.29 about.html
--- about.html  2 Jun 2018 11:10:44 -   1.29
+++ about.html  2 Jun 2018 20:31:18 -
@@ -2,6 +2,7 @@
 
 
 GCC: About
+https://gcc.gnu.org/gcc.css"; />
 
 
 
Index: backends.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/backends.html,v
retrieving revision 1.74
diff -u -r1.74 backends.html
--- backends.html   8 Feb 2017 18:44:56 -   1.74
+++ backends.html   2 Jun 2018 20:31:18 -
@@ -2,6 +2,7 @@
 
 
 Status of Supported Architectures from Maintainers' Point of 
View
+https://gcc.gnu.org/gcc.css"; />
 
 
 
Index: badspammer.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/badspammer.html,v
retrieving revision 1.7
diff -u -r1.7 badspammer.html
--- badspammer.html 21 Sep 2006 14:17:36 -  1.7
+++ badspammer.html 2 Jun 2018 20:31:18 -
@@ -2,6 +2,7 @@
 
 
 GCC
+https://gcc.gnu.org/gcc.css"; />
 
 
 
Index: branch-closing.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/branch-closing.html,v
retrieving revision 1.1
diff -u -r1.1 branch-closing.html
--- branch-closing.html 9 Feb 2009 22:30:42 -   1.1
+++ branch-closing.html 2 Jun 2018 20:31:18 -
@@ -2,6 +2,7 @@
 
 
 Closing a GCC Release Branch
+https://gcc.gnu.org/gcc.css"; />
 
 
 
Index: branching.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/branching.html,v
retrieving revision 1.34
diff -u -r1.34 branching.html
--- branching.html  12 Mar 2017 22:43:55 -  1.34
+++ branching.html  2 Jun 2018 20:31:18 -
@@ -2,6 +2,7 @@
 
 
 Branching for a GCC Release
+https://gcc.gnu.org/gcc.css"; />
 
 
 
Index: buildstat.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/buildstat.html,v
retrieving revision 1.27
diff -u -r1.27 buildstat.html
--- buildstat.html  2 May 2018 10:21:14 -   1.27
+++ buildstat.html  2 Jun 2018 20:31:18 -
@@ -2,6 +2,7 @@
 
 
 Build status for GCC
+https://gcc.gnu.org/gcc.css"; />
 
 
 
Index: c99status.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/c99status.html,v
retrieving revision 1.64
diff -u -r1.64 c99status.html
--- c99status.html  28 May 2016 20:40:34 -  1.64
+++ c99status.html  2 Jun 2018 20:31:18 -
@@ -2,6 +2,7 @@
 
 
 Status of C99 features in GCC
+https://gcc.gnu.org/gcc.css"; />
 
 
 
Index: codingconventions.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/codingconventions.html,v
retrieving revision 1.80
diff -u -r1.80 codingconventions.html
--- codingconventions.html  13 Mar 2017 22:01:05 -  1.80
+++ codingconventions.html  2 Jun 2018 20:31:19 -
@@ -2,6 +2,7 @@
 
 
 GCC Coding Conventions
+https://gcc.gnu.org/gcc.css"; />
 
 
 
Index: codingrationale.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/codingrationale.html,v
retrieving revision 1.3
diff -u -r1.3 codingrationale.html
--- codingrationale.html30 Sep 2013 20:35:01 -  1.3
+++ codingrationale.html2 Jun 2018 20:31:19 -
@@ -2,6 +2,7 @@
 
 
 GCC Coding Conventions Rationale and Discussion
+https://gcc.gnu.org/gcc.css"; />
 
 
 
Index: contribute.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/contribute.html,v
retrieving revision 1.87
diff -u -r1.87 contribute.html
--- contribute.html 9 Apr 

C++ PATCH for c++/85761, ICE with reference to const outer variable

2018-06-02 Thread Jason Merrill
In this testcase, the use of COUNT requires us to capture it because
it's bound to a reference, but the lambda doesn't capture, so it's
ill-formed.  We're supposed to reject this use in mark_use, but we
were getting confused by the location wrapper.  This patch teaches
mark_use to look through location wrappers.

Tested x86_64-pc-linux-gnu, applying to trunk.
commit 91354c9fd7f4773e2c95b36237b88c1f71657097
Author: Jason Merrill 
Date:   Fri Jun 1 23:29:10 2018 -0400

PR c++/85761 - ICE with ill-formed use of const outer variable.

* expr.c (mark_use): Handle location wrappers.

diff --git a/gcc/cp/expr.c b/gcc/cp/expr.c
index 0d0a10ec4a6..9780b75d1cd 100644
--- a/gcc/cp/expr.c
+++ b/gcc/cp/expr.c
@@ -139,6 +139,9 @@ mark_use (tree expr, bool rvalue_p, bool read_p,
 		  break;
 		}
 	}
+	  temp_override l (input_location);
+	  if (loc != UNKNOWN_LOCATION)
+	input_location = loc;
 	  expr = process_outer_var_ref (expr, tf_warning_or_error, true);
 	  if (!(TREE_TYPE (oexpr)
 		&& TYPE_REF_P (TREE_TYPE (oexpr
@@ -184,6 +187,11 @@ mark_use (tree expr, bool rvalue_p, bool read_p,
 	}
   break;
 default:
+  if (location_wrapper_p (expr))
+	{
+	  loc = EXPR_LOCATION (expr);
+	  recurse_op[0] = true;
+	}
   break;
 }
 
diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const8.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const8.C
new file mode 100644
index 000..41cfd43b3a7
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const8.C
@@ -0,0 +1,19 @@
+// PR c++/85761
+// { dg-do compile { target c++11 } }
+
+template 
+void out(const T& value);
+
+struct foo {
+  void bar();
+};
+
+void foo::bar()
+{
+  constexpr int COUNT = 1;
+  auto run = []() {
+out(COUNT);		// { dg-error "9:not captured" }
+  };
+
+  run();
+}


[Committed] PR fortran/85938 -- testcase for rank change

2018-06-02 Thread Steve Kargl
PR fortran/85938 is another example of a failure caused by
not setting the rank correctly.  The issues with setting
rank were fixed in r261081.  I've converted the testcase in
PR fortran/85938 to be suitable for the testsuite and
committed it.

2018-06-02  Steven G. Kargl  

PR fortran/85938
* gfortran.dg/pr85938.f90: Fixed by revision r261081

-- 
Steve
Index: gcc/testsuite/gfortran.dg/pr85938.f90
===
--- gcc/testsuite/gfortran.dg/pr85938.f90	(nonexistent)
+++ gcc/testsuite/gfortran.dg/pr85938.f90	(working copy)
@@ -0,0 +1,9 @@
+! { dg-do run }
+! PR fortran/85938
+program foo
+  real a(9), b(3)
+  integer :: n = 3
+  a = 1.0
+  b = 1.0
+  if (any(matmul(reshape(A, (/ n, n /)), b) /= 3.)) stop 1
+end program


Re: [wwwdocs] Push references to our CSS into individual HTML files

2018-06-02 Thread Jakub Jelinek
On Sun, Jun 03, 2018 at 12:37:14AM +0200, Gerald Pfeifer wrote:
> Push the references to our CSS from the MetaHTML style sheet into the
> individual HTML files.

Doesn't this affect the generated pages, like onlinedocs etc.?

Jakub