This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [tsan] ThreadSanitizer instrumentation part


On Thu, Nov 01, 2012 at 11:32:01AM -0700, Xinliang David Li wrote:
> For the following case:
> 
> int foo()
> {
>    int a[100];
> 
>     // use 'a' as a[i]
>     ...
> }
> 
> Assuming there is no assignment of the form p = &a[i] in the source,
> variable 'a' still will be allocated in stack and its address is is
> needed. Is the addressable bit set for 'a'?   If yes, then it is not
> the same as address taken.

But how is that relevant to tsan?  If TREE_ADDRESSABLE isn't set on a,
then yes, you can still use a[i] = 6; or return a[j]; on it, and it will
be allocated on stack, but different threads can't access the array, so
there is no data race possible.
Only if a is static int a[100]; above, or otherwise is_global_var (decl).

	Jakub


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