http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53780

--- Comment #9 from vincenzo Innocente <vincenzo.innocente at cern dot ch> 
2012-06-29 15:31:12 UTC ---
in any case the "regression" disappear if I declare inline the template methods
in question
  template<typename T>
+  inline
   bool 
   WorkerT<T>::implDoBegin(EventPrincipal& ep, EventSetup const& c,
CurrentProcessingContext const* cpc) {

etc

so I would suggest not to touch anything until is not understood If it a real
compiler bug or a "user" code mistakeā€¦

v.



On 29 Jun, 2012, at 5:03 PM, vincenzo.innocente at cern dot ch wrote:

> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53780
> 
> --- Comment #8 from vincenzo Innocente <vincenzo.innocente at cern dot ch> 
> 2012-06-29 15:03:17 UTC ---
> NOT when applied on the top of
> gcc version 4.8.0 20120629 (experimental) [trunk revision 189073] (GCC) 
> svn diff
> Index: gcc/tree.c
> ===================================================================
> --- gcc/tree.c    (revision 189073)
> +++ gcc/tree.c    (working copy)
> @@ -4910,7 +4910,15 @@
>       fld_worklist_push (TYPE_MAIN_VARIANT (t), fld);
>       /* Do not walk TYPE_NEXT_VARIANT.  We do not stream it and thus
>          do not and want not to reach unused variants this way.  */
> -      fld_worklist_push (TYPE_CONTEXT (t), fld);
> +      if (TYPE_CONTEXT (t))
> +       {
> +         tree ctx = TYPE_CONTEXT (t);
> +         /* We adjust BLOCK TYPE_CONTEXTs to the innermost non-BLOCK one.
> +            So push that instead.  */
> +         while (ctx && TREE_CODE (ctx) == BLOCK)
> +           ctx = BLOCK_SUPERCONTEXT (ctx);
> +         fld_worklist_push (ctx, fld);
> +       }
>       /* Do not walk TYPE_CANONICAL.  We do not stream it and thus do not
>      and want not to reach unused types this way.  */
> 
> I'll try also with 4.7
> 
> did not manage yet to reproduce with simple examples using sigcpp...
>

Reply via email to