yeah, you are right, overlooked that "Target target;" inside the inner "tex" struct.
On Sat, Sep 22, 2018 at 4:27 PM, Jan Vesely <jan.ves...@rutgers.edu> wrote: > The warning is correct. In the first case, memset tries to zero "Target" > object which has a non-trivial constructor and non-trivial copy-constructor. > The original code is broken in the way it mixes C and C++ initialization and > the patch only papers over the issue. > The correct fix would be to provide a proper constructor for structs that > include instances of C++ classes. > > Jan > > > On Sat, Sep 22, 2018 at 6:43 AM Karol Herbst <kher...@redhat.com> wrote: >> >> yeah, I agree here. Either the code was wrong in the first place, >> which means it would have to be fixed properly or the warning is >> wrong. The proper fix here is that GCC should detect itself if it's >> safe to do or not, otherwise that warning becomes a "might be a >> problem" thing which doesn't help at all. Either it is wrong, or it >> isn't. And gcc should be able to know in this case. >> >> On Sat, Sep 22, 2018 at 6:07 AM, Ilia Mirkin <imir...@alum.mit.edu> wrote: >> > Based on the various fixes, warning seems bogus -- is the proper >> > solution -Wno-class-memaccess? (Or however one disables such >> > things...) >> > >> > On Fri, Sep 21, 2018 at 9:50 AM, Eric Engestrom >> > <eric.engest...@intel.com> wrote: >> >> Signed-off-by: Eric Engestrom <eric.engest...@intel.com> >> >> --- >> >> src/gallium/drivers/nouveau/codegen/nv50_ir.cpp | 2 +- >> >> src/gallium/drivers/nouveau/codegen/nv50_ir_target.cpp | 2 +- >> >> 2 files changed, 2 insertions(+), 2 deletions(-) >> >> >> >> diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp >> >> b/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp >> >> index 49425b98b9137058c986..62ebc2d24069b7b5f523 100644 >> >> --- a/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp >> >> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp >> >> @@ -905,7 +905,7 @@ Instruction::isCommutationLegal(const Instruction >> >> *i) const >> >> TexInstruction::TexInstruction(Function *fn, operation op) >> >> : Instruction(fn, op, TYPE_F32) >> >> { >> >> - memset(&tex, 0, sizeof(tex)); >> >> + memset(static_cast<void*>(&tex), 0, sizeof(tex)); >> >> >> >> tex.rIndirectSrc = -1; >> >> tex.sIndirectSrc = -1; >> >> diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_target.cpp >> >> b/src/gallium/drivers/nouveau/codegen/nv50_ir_target.cpp >> >> index 9193a01f189874a7fb38..b6b9b42964bec670079c 100644 >> >> --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_target.cpp >> >> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_target.cpp >> >> @@ -454,7 +454,7 @@ CodeEmitter::addInterp(int ipa, int reg, FixupApply >> >> apply) >> >> if (!fixupInfo) >> >> return false; >> >> if (n == 0) >> >> - memset(fixupInfo, 0, sizeof(FixupInfo)); >> >> + memset(static_cast<void*>(fixupInfo), 0, sizeof(FixupInfo)); >> >> } >> >> ++fixupInfo->count; >> >> >> >> -- >> >> Cheers, >> >> Eric >> >> >> >> _______________________________________________ >> >> mesa-dev mailing list >> >> mesa-dev@lists.freedesktop.org >> >> https://lists.freedesktop.org/mailman/listinfo/mesa-dev >> > _______________________________________________ >> > mesa-dev mailing list >> > mesa-dev@lists.freedesktop.org >> > https://lists.freedesktop.org/mailman/listinfo/mesa-dev >> _______________________________________________ >> mesa-dev mailing list >> mesa-dev@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev