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/']
As long as you only read data, you can access it from as many threads as you want. When data needs to be changed, that's when it gets complicated.
String literals are (conceptually) stored in read only memory and initialised on loading (rather than at runtime). It's therefore safe to access them from multiple threads at any time.

Note that more complex structures might not be initialised at load time, and so multiple thread access might have the possibility of issues immediately after the creation of the object.

But string literals are completely safe.