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
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 | Can you try to insert an alloca() call here? It can force using the frame pointer in many cases (compilers). void *p = alloca(0); |
Can you try to insert an alloca() call here? It can force using the frame pointer in many cases (compilers).