Re: gnu-tm: Dont allow assigning transaction_unsafe functions to transaction_safe function pointers (issue6198054)

2012-05-16 Thread Richard Henderson
On 05/15/2012 02:16 PM, Patrick Marlier wrote: Tested on i686. Is the patch ok? Thanks. BTW, Should we generate a warning or an error? -- 2012-05-15 Patrick Marlier patrick.marl...@gmail.com * trans-mem.c (diagnose_tm_1_op): Warn about assignment of transaction unsafe

Re: gnu-tm: Dont allow assigning transaction_unsafe functions to transaction_safe function pointers (issue6198054)

2012-05-15 Thread Torvald Riegel
On Tue, 2012-05-08 at 18:02 -0500, Dave Boutcher wrote: Without this patch it is perfectly fine to assign non-transaction_safe functions to function pointers marked as transaction_safe. Unpleasantness happens at run time. e.g. __attribute__((transaction_safe)) long (*compare)(int, int);

Re: gnu-tm: Dont allow assigning transaction_unsafe functions to transaction_safe function pointers (issue6198054)

2012-05-15 Thread Patrick Marlier
Follow-up of Dave's patch. I would prefer to see such checks in trans-mem.c as follows. In a transaction, a function pointer can be declared and assigned but there is no check that the function pointer is transaction_safe. So at runtime, if the function was unsafe, libitm stops on assert

Re: gnu-tm: Dont allow assigning transaction_unsafe functions to transaction_safe function pointers (issue6198054)

2012-05-15 Thread Dave Boutcher
On Tue, May 15, 2012 at 11:23 AM, Torvald Riegel trie...@redhat.com wrote: On Tue, 2012-05-08 at 18:02 -0500, Dave Boutcher wrote: Without this patch it is perfectly fine to assign non-transaction_safe functions to function pointers marked as transaction_safe. Unpleasantness happens at run

Re: gnu-tm: Dont allow assigning transaction_unsafe functions to transaction_safe function pointers (issue6198054)

2012-05-15 Thread Dave Boutcher
On Tue, May 15, 2012 at 4:16 PM, Patrick Marlier patrick.marl...@gmail.com wrote: Follow-up of Dave's patch. I would prefer to see such checks in trans-mem.c as follows. In a transaction, a function pointer can be declared and assigned but there is no check that the function pointer is