Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: error: ‘MEM[(struct AMFVariantStruct *)_2 + 40B].D.5758.stringValue’ may be used uninitialized #531

Closed
RandUser123sa opened this issue Feb 2, 2025 · 3 comments
Labels

Comments

@RandUser123sa
Copy link

Describe the bug
Compilation issue, unable to build samples with make all BUILD_TYPE=rel

To Reproduce
Steps to reproduce the behavior:
cd amf/public/samples
make all BUILD_TYPE=rel

Setup (please complete the following information):

  • OS: [Slackware 15 x86_64]
  • Driver Version [e.g. 22.2.1]
  • GPU [ RX 7900 XTX]
  • Which component has the issue [Compilation issue]

Debug Log (please upload or paste):

In function ‘AMFVariantClear’,
    inlined from ‘__dt_base ’ at ../../../../public/common/../include/core/Variant.h:253:40,
    inlined from ‘__dt_base ’ at /usr/include/c++/14.2.0/bits/stl_pair.h:284:12,
    inlined from ‘destroy_at’ at /usr/include/c++/14.2.0/bits/stl_construct.h:88:18,
    inlined from ‘destroy’ at /usr/include/c++/14.2.0/bits/alloc_traits.h:556:19,
    inlined from ‘_M_destroy_node’ at /usr/include/c++/14.2.0/bits/stl_tree.h:621:24,
    inlined from ‘_M_drop_node’ at /usr/include/c++/14.2.0/bits/stl_tree.h:629:17,
    inlined from ‘__dt_base ’ at /usr/include/c++/14.2.0/bits/stl_tree.h:1639:23,
    inlined from ‘_M_emplace_hint_unique.constprop.isra’ at /usr/include/c++/14.2.0/bits/stl_tree.h:2463:7:
../../../../public/common/../include/core/Variant.h:602:30: error: ‘MEM[(struct AMFVariantStruct *)_2 + 40B].D.5758.stringValue’ may be used uninitialized [-Werror=maybe-uninitialized]
  602 |             amf_variant_free(AMFVariantString(pVariant));
      |                              ^
../../../../public/common/../include/core/Variant.h:607:30: error: ‘MEM[(struct AMFVariantStruct *)_2 + 40B].D.5758.wstringValue’ may be used uninitialized [-Werror=maybe-uninitialized]
  607 |             amf_variant_free(AMFVariantWString(pVariant));
      |                              ^
../../../../public/common/../include/core/Variant.h:612:17: error: ‘MEM[(struct AMFVariantStruct *)_2 + 40B].D.5758.pInterface’ may be used uninitialized [-Werror=maybe-uninitialized]
  612 |             if (AMFVariantInterface(pVariant) != NULL)
      |                 ^
lto1: all warnings being treated as errors
lto-wrapper: fatal error: g++ returned 1 exit status

@RandUser123sa
Copy link
Author

RandUser123sa commented Feb 6, 2025

The same error on 1.4.36

make[1]: Leaving directory '/root/amdgpu/amf/AMF-1.4.36/amf/public/samples/CPPSamples/SimplePA'
In function ‘AMFVariantClear’,
    inlined from ‘__dt_base ’ at ../../../../public/common/../include/core/Variant.h:253:40,
    inlined from ‘__dt_base ’ at /usr/include/c++/14.2.0/bits/stl_pair.h:284:12,
    inlined from ‘destroy_at’ at /usr/include/c++/14.2.0/bits/stl_construct.h:88:18,
    inlined from ‘destroy’ at /usr/include/c++/14.2.0/bits/alloc_traits.h:556:19,
    inlined from ‘_M_destroy_node’ at /usr/include/c++/14.2.0/bits/stl_tree.h:621:24,
    inlined from ‘_M_drop_node’ at /usr/include/c++/14.2.0/bits/stl_tree.h:629:17,
    inlined from ‘__dt_base ’ at /usr/include/c++/14.2.0/bits/stl_tree.h:1639:23,
    inlined from ‘_M_emplace_hint_unique.constprop.isra’ at /usr/include/c++/14.2.0/bits/stl_tree.h:2463:7:
../../../../public/common/../include/core/Variant.h:602:30: error: ‘MEM[(struct AMFVariantStruct *)_2 + 40B].D.5758.stringValue’ may be used uninitialized [-Werror=maybe-uninitialized]
  602 |             amf_variant_free(AMFVariantString(pVariant));
      |                              ^
../../../../public/common/../include/core/Variant.h:607:30: error: ‘MEM[(struct AMFVariantStruct *)_2 + 40B].D.5758.wstringValue’ may be used uninitialized [-Werror=maybe-uninitialized]
  607 |             amf_variant_free(AMFVariantWString(pVariant));
      |                              ^
../../../../public/common/../include/core/Variant.h:612:17: error: ‘MEM[(struct AMFVariantStruct *)_2 + 40B].D.5758.pInterface’ may be used uninitialized [-Werror=maybe-uninitialized]
  612 |             if (AMFVariantInterface(pVariant) != NULL)
      |                 ^
make[1]: Leaving directory '/root/amdgpu/amf/AMF-1.4.36/amf/public/samples/CPPSamples/SimpleEncoder'
make[1]: Leaving directory '/root/amdgpu/amf/AMF-1.4.36/amf/public/samples/CPPSamples/SimpleConverter'
In function ‘AMFVariantClear’,
    inlined from ‘__dt_base ’ at ../../../../public/common/../include/core/Variant.h:253:40,
    inlined from ‘__dt_base ’ at /usr/include/c++/14.2.0/bits/stl_pair.h:284:12,
    inlined from ‘destroy_at’ at /usr/include/c++/14.2.0/bits/stl_construct.h:88:18,
    inlined from ‘destroy’ at /usr/include/c++/14.2.0/bits/alloc_traits.h:556:19,
    inlined from ‘_M_destroy_node’ at /usr/include/c++/14.2.0/bits/stl_tree.h:621:24,
    inlined from ‘_M_drop_node’ at /usr/include/c++/14.2.0/bits/stl_tree.h:629:17,
    inlined from ‘__dt_base ’ at /usr/include/c++/14.2.0/bits/stl_tree.h:1639:23,
    inlined from ‘_M_emplace_hint_unique.constprop.isra’ at /usr/include/c++/14.2.0/bits/stl_tree.h:2463:7:
../../../../public/common/../include/core/Variant.h:602:30: error: ‘MEM[(struct AMFVariantStruct *)_2 + 40B].D.5340.stringValue’ may be used uninitialized [-Werror=maybe-uninitialized]
  602 |             amf_variant_free(AMFVariantString(pVariant));
      |                              ^
../../../../public/common/../include/core/Variant.h:607:30: error: ‘MEM[(struct AMFVariantStruct *)_2 + 40B].D.5340.wstringValue’ may be used uninitialized [-Werror=maybe-uninitialized]
  607 |             amf_variant_free(AMFVariantWString(pVariant));
      |                              ^
../../../../public/common/../include/core/Variant.h:612:17: error: ‘MEM[(struct AMFVariantStruct *)_2 + 40B].D.5340.pInterface’ may be used uninitialized [-Werror=maybe-uninitialized]
  612 |             if (AMFVariantInterface(pVariant) != NULL)
      |                 ^
make[1]: Leaving directory '/root/amdgpu/amf/AMF-1.4.36/amf/public/samples/CPPSamples/SimpleDecoder'
lto1: all warnings being treated as errors

@rhutsAMD
Copy link
Collaborator

rhutsAMD commented Feb 6, 2025

What compiler and version are you using? As an experiment, could you try to set the pointers to NULL inside AMFVariantInit like so:

    static AMF_INLINE AMF_RESULT AMF_CDECL_CALL AMFVariantInit(AMFVariantStruct* pVariant)
    {
        AMF_VARIANT_RETURN_IF_INVALID_POINTER(pVariant);
        pVariant->type = AMF_VARIANT_EMPTY;
        pVariant->pInterface = NULL;
        pVariant->stringValue = NULL;
        pVariant->wstringValue = NULL;
        return AMF_OK;
    }

@RandUser123sa
Copy link
Author

Hi @rhutsAMD,

the patch solve the problem. Thank you. I'm using g++ (GCC) 14.2.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants