On 19 Nov 13:00, Richard Biener wrote:
> On Mon, Nov 18, 2013 at 5:45 PM, Jeff Law <l...@redhat.com> wrote:
> > On 11/08/13 02:02, Ilya Enkovich wrote:
> >>
> >> Hi,
> >>
> >> Here is an updated patch version with no langhook.
> >>
> >> Regarding TLS objects issue - I do not think compiler should compensate
> >> the absence of instrumentation in libraries.  Compiler should be 
> >> responsible
> >> for initialization of Bounds Tables for .tdata section.  Correct data copy
> >> is a responsibility of library.  User should use either instrumented 
> >> library
> >> or wrapper calls if he needs this functionality.
> >>
> >> Thanks,
> >> Ilya
> >> --
> >> gcc/
> >>
> >> 2013-11-06  Ilya Enkovich  <ilya.enkov...@intel.com>
> >>
> >>         * c/c-parser.c: Include tree-chkp.h.
> >>         (c_parser_declaration_or_fndef): Register statically
> >>         initialized decls in Pointer Bounds Checker.
> >>         * cp/decl.c: Include tree-chkp.h.
> >>         (cp_finish_decl): Register statically
> >>         initialized decls in Pointer Bounds Checker.
> >>         * gimplify.c: Include tree-chkp.h.
> >>         (gimplify_init_constructor): Register statically
> >>         initialized decls in Pointer Bounds Checker.
> >
> > Is parsing really the right time to register these things with the checking
> > framework?  Doesn't all this stuff flow through the gimplifier?  If so
> > wouldn't that be a better place?
> >
> > If it can be done in the gimplifier, which seems good from the standpoint of
> > simplifying the long term maintenance of the checking code.
> >
> > If there's a good reason to have this front-end, please explain it.
> 
> I'd say not in the gimplifier either but in varpool (symbol table) code
> where the symbols are ultimatively registered with?

Something like that?

--- a/gcc/varpool.c
+++ b/gcc/varpool.c
@@ -151,6 +151,10 @@ varpool_node_for_decl (tree decl)
   node = varpool_create_empty_node ();
   node->decl = decl;
   symtab_register_node (node);
+
+  if (DECL_NIITIAL (decl))
+    chkp_register_var_initializer (decl);
+
   return node;
 }

Thanks,
Ilya

> 
> Richard.
> 
> > Thanks,
> > Jeff
> >

Reply via email to