[ANNOUNCE] VDR Version 2.7.1 freigegeben

  • Einverstanden, sammeln wir compiler Warnungen.

  • wirbel Deinem Kommentar entnehme ich, dass wir an dieser Stelle wohl eher nicht zusammenkommen ;-). Ob das mit dem #pragma tatsächlich funktioniert kannst nur du testen, denn ich habe gcc 14.1.0 nicht im Einsatz.


    Aber schauen wir uns doch mal den Assembler-Code an (ohne -O3, denn damit ist die Struktur nur schwer wiederzuerkennen).

    Hier der ursprüngliche Aufruf:

    Code
    # remux.c:1746:   int sps_max_sub_layers_minus1 = GetBits(3); // sps_max_sub_layers_minus1
            movq    -264(%rbp), %rax        # this, _2
            movl    $3, %esi        #,
            movq    %rax, %rdi      # _2,
            call    _ZN11cH264Parser7GetBitsEi      #
            movl    %eax, -120(%rbp)        # _3, sps_max_sub_layers_minus1

    Hier dein Vorschlag:

    Einiges an Aufwand, nur um den Compiler zufriedenzustellen.


    Vorschlag zur Güte:

    Code
    # remux.c:1746:   int sps_max_sub_layers_minus1 = GetBits(3) & 7; // sps_max_sub_layers_minus1 - "& 7" to silence compiler warning in gcc 14.1.0
            movq    -264(%rbp), %rax        # this, _2
            movl    $3, %esi        #,
            movq    %rax, %rdi      # _2,
            call    _ZN11cH264Parser7GetBitsEi      #
            andl    $7, %eax        #, tmp306
            movl    %eax, -120(%rbp)        # tmp306, sps_max_sub_layers_minus1

    Ist minimalinvasiv und sollte den Compiler auch zufriedenstellen.

    Magst du das vielleicht testen?

    Hier als Diff:

  • Die Änderung funktioniert.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!