When compiling with icc, there is a problem with reenter frame addresses in parallel_begin callbacks in the interoperability.c testcase. (The address is not available. thus NULL)
Using alloca() forces availability of the frame pointer.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
Comment Actions
The problem, which gets visible in this test case is the use of __builtin_frame_address(1), which is documented to be not safe.
Is there a better way to get the canonical frame address of the calling function? Also the address returned by __builtin_frame_address seems to be different from the canonical frame address. How can we get the requested address?
runtime/test/ompt/misc/interoperability.cpp | ||
---|---|---|
13 ↗ | (On Diff #151712) | Can you try to insert an alloca() call here? It can force using the frame pointer in many cases (compilers). void *p = alloca(0); |