Is it valid (defined behavior) to access a string literal simultaneously with multiple threads? Given a function like this:

```
const char* give()
{
  return "Hello, World!";
}

```

Would it be save to call the function and dereference the pointer simultaneously?

Edit: Many answers. Will accept the first one who can show me the section out of the standard.
['https://Stackoverflow.com/questions/9533392', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/941699/']
It is always safe to access immutable data from multiple threads. String literals are an example of immutable data (since it's illegal to modify them at run-time), so it is safe to access them from multiple threads.
This depends on the implementation of the C Compiler. But I do not know of an implementation where concurrent read accesses might be unsafe, so in practice this is safe.