[OpenMP][FIX] Ensure we do not read outside the device image (#74669)

Before we expected all symbols in the device image to be backed up with
data that we could read. However, uninitialized values are not. We now
check for this case and avoid reading random memory.

This also replaces the correct readGlobalFromImage call with a
isSymbolInImage check after
https://github.com/llvm/llvm-project/pull/74550 picked the wrong one.

Fixes: https://github.com/llvm/llvm-project/issues/74582
GitOrigin-RevId: 0ace6ee73a6b7047d16f23170c67cdf358f34c34
4 files changed