Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
pulseaudio
pulseaudio
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 786
    • Issues 786
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 57
    • Merge Requests 57
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • PulseAudio
  • pulseaudiopulseaudio
  • Merge Requests
  • !299

Merged
Opened May 26, 2020 by Tanu Kaskinen@tanukOwner

raop-sink: Fix compiler warnings

  • Overview 0
  • Commits 1
  • Pipelines 2
  • Changes 1

There were three maybe-uninitialized warnings when building with Autotools (for some reason I don't see these with Meson):

modules/raop/raop-sink.c: In function ‘thread_func’:
modules/raop/raop-sink.c:543:16: warning: ‘intvl’ may be used uninitialized in this function [-Wmaybe-uninitialized]
             if (intvl < now + u->block_usec) {
                ^
In file included from ./pulsecore/macro.h:270,
                 from ./pulsecore/cpu-x86.h:25,
                 from ./pulsecore/cpu.h:23,
                 from ./pulsecore/core.h:26,
                 from modules/raop/raop-sink.c:48:
./pulsecore/log.h:129:28: warning: ‘check_timing_count’ may be used uninitialized in this function [-Wmaybe-uninitialized]
 #define pa_log_warn(...)   pa_log_level_meta(PA_LOG_WARN,   __FILE__, __LINE__, __func__, __VA_ARGS__)
                            ^~~~~~~~~~~~~~~~~
modules/raop/raop-sink.c:404:14: note: ‘check_timing_count’ was declared here
     uint32_t check_timing_count;
              ^~~~~~~~~~~~~~~~~~
modules/raop/raop-sink.c:500:27: warning: ‘last_timing’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 pa_usec_t since = now - last_timing;
                           ^~~~~

I moved the intvl variable initialization out of the for loop, because it looked like the variable value is supposed to be remembered between the iterations. I don't know if the variable declaration (without initialization) in the beginning of the loop caused the compiler to touch the variable between iterations, probably not, but I'm pretty sure that's undefined behaviour.

Other than that maybe-undefined behaviour, these compiler warnings may be false positives, since the variables are initialized when u->first is true.

I initialized the three variables in to the same value as what is used when resetting them when u->first is true. I didn't test these changes, but they look safe to me.

Assignee
Assign to
Reviewer
Request review from
None
Milestone
None
Assign milestone
Time tracking
Reference: pulseaudio/pulseaudio!299
Source branch: raop-warnings