diff --git a/openmp/libomptarget/src/omptarget.cpp b/openmp/libomptarget/src/omptarget.cpp --- a/openmp/libomptarget/src/omptarget.cpp +++ b/openmp/libomptarget/src/omptarget.cpp @@ -586,7 +586,7 @@ if (getParentIndex(ArgTypes[I]) < 0 && NextI < ArgNum && getParentIndex(ArgTypes[NextI]) == I) { Padding = (int64_t)HstPtrBegin % Alignment; - if (Padding) { + if (Padding && ((int64_t)HstPtrBegin - (int64_t)HstPtrBase >= Padding)) { DP("Using a padding of %" PRId64 " bytes for begin address " DPxMOD "\n", Padding, DPxPTR(HstPtrBegin)); @@ -940,7 +940,8 @@ if (getParentIndex(ArgTypes[I]) < 0 && NextI < ArgNum && getParentIndex(ArgTypes[NextI]) == I) { int64_t Padding = (int64_t)HstPtrBegin % Alignment; - if (Padding) { + + if (Padding && ((int64_t)HstPtrBegin - (int64_t)ArgBases[I] >= Padding)) { DP("Using a Padding of %" PRId64 " bytes for begin address " DPxMOD "\n", Padding, DPxPTR(HstPtrBegin));