[pulseaudio-discuss] [PATCH] Get rid of some warnings

Maarten Bosmans mkbosmans at gmail.com
Sat Mar 19 08:36:52 PDT 2011


With this and other patches floating on the list we're down to three warnings:
(this is with gcc 4.6.0, with 4.4.4 - which is standard on ubuntu
10.10 - I got more bogus warnings)

  CC     libpulsecommon_1.0_la-ipacl.lo
pulsecore/ipacl.c: In function ‘pa_ip_acl_check’:
pulsecore/ipacl.c:238:20: warning: cannot optimize loop, the loop
counter may overflow [-Wunsafe-loop-optimizations]

I have no idea how to do this one. It seems safe to ignore.


  CC     libpulsecommon_1.0_la-memtrap.lo
pulsecore/memtrap.c: In function ‘sigsafe_error’:
pulsecore/memtrap.c:72:5: warning: ignoring return value of ‘write’,
declared with attribute warn_unused_result [-Wunused-result]

We really want to ignore the return value here, because you can't
really do anything about a failing write, as it's in a signal handler
and we're aborting anyway. That line already casts the result to
(void), but that doesn't seem to stop the warning:
pulsecore/memtrap.c:72: (void) write(STDERR_FILENO, s, strlen(s));


  CC     libbluetooth_sbc_la-sbc.lo
modules/bluetooth/sbc/sbc.c: In function ‘sbc_decode’:
modules/bluetooth/sbc/sbc.c:498:10: warning: cannot optimize possibly
infinite loops [-Wunsafe-loop-optimizations]

Not our code


I think I have had enough of this. But if there are others that are
interested in fixing warnings: compiling with clang works now in git
master and gives plenty of warnings to play with ;-)


Maarten


2011/3/19 Maarten Bosmans <mkbosmans at gmail.com>:
> Mostly warnings about unused stuff.
> Furthermore, the first hunk is a fix for the change in 177948a6.
> Finally, comment in AEC_dtd was translated and the code simplified slightly.
>
> CC     module_bluetooth_device_la-module-bluetooth-device.lo
> modules/bluetooth/module-bluetooth-device.c: In function ‘a2dp_process_render’:
> modules/bluetooth/module-bluetooth-device.c:1335:30: warning: pointer targets in passing argument 6 of ‘sbc_encode’
> differ in signedness [-Wpointer-sign]
> ../src/modules/bluetooth/sbc/sbc.h:92:9: note: expected ‘ssize_t *’ but argument is of type ‘size_t *’
>
> CC     module_rygel_media_server_la-module-rygel-media-server.lo
> modules/module-rygel-media-server.c:383:13: warning: ‘append_property_dict_entry_object_array’ defined but not used [-Wunused-function]
>
> CC     module_echo_cancel_la-adrian-aec.lo
> modules/echo-cancel/adrian-aec.h:360:15: warning: ‘AEC_getambient’ defined but not used [-Wunused-function]
> modules/echo-cancel/adrian-aec.h:368:14: warning: ‘AEC_setgain’ defined but not used [-Wunused-function]
> modules/echo-cancel/adrian-aec.h:374:14: warning: ‘AEC_setaes’ defined but not used [-Wunused-function]
> modules/echo-cancel/adrian-aec.h:377:16: warning: ‘AEC_max_dotp_xf_xf’ declared ‘static’ but never defined [-Wunused-function]
>
> CC     module_echo_cancel_la-module-echo-cancel.lo
> modules/echo-cancel/module-echo-cancel.c: In function ‘time_callback’:
> modules/echo-cancel/module-echo-cancel.c:266:12: warning: variable ‘fs’ set but not used [-Wunused-but-set-variable]
>
> CC     module-virtual-sink.lo
> modules/module-virtual-sink.c: In function ‘sink_input_pop_cb’:
> modules/module-virtual-sink.c:206:15: warning: variable ‘current_latency’ set but not used [-Wunused-but-set-variable]
> ---
>  src/modules/bluetooth/module-bluetooth-device.c |    2 +-
>  src/modules/echo-cancel/adrian-aec.c            |   16 ++++++----------
>  src/modules/echo-cancel/adrian-aec.h            |    7 +++----
>  src/modules/echo-cancel/module-echo-cancel.c    |    4 ++--
>  src/modules/module-rygel-media-server.c         |    1 +
>  src/modules/module-virtual-sink.c               |    2 +-
>  src/pulse/gccmacro.h                            |    2 +-
>  7 files changed, 15 insertions(+), 19 deletions(-)
>
> diff --git a/src/modules/bluetooth/module-bluetooth-device.c b/src/modules/bluetooth/module-bluetooth-device.c
> index 5561054..ac0f16f 100644
> --- a/src/modules/bluetooth/module-bluetooth-device.c
> +++ b/src/modules/bluetooth/module-bluetooth-device.c
> @@ -1326,7 +1326,7 @@ static int a2dp_process_render(struct userdata *u) {
>     to_write = a2dp->buffer_size - sizeof(*header) - sizeof(*payload);
>
>     while (PA_LIKELY(to_encode > 0 && to_write > 0)) {
> -        size_t written;
> +        ssize_t written;
>         ssize_t encoded;
>
>         encoded = sbc_encode(&a2dp->sbc,
> diff --git a/src/modules/echo-cancel/adrian-aec.c b/src/modules/echo-cancel/adrian-aec.c
> index 6793e59..04b31e9 100644
> --- a/src/modules/echo-cancel/adrian-aec.c
> +++ b/src/modules/echo-cancel/adrian-aec.c
> @@ -107,8 +107,7 @@ AEC* AEC_init(int RATE, int have_vector)
>  // mapped to 1.0 with a limited linear function.
>  static float AEC_dtd(AEC *a, REAL d, REAL x)
>  {
> -  float stepsize;
> -  float ratio, M;
> +  float ratio, stepsize;
>
>   // fast near-end and far-end average
>   a->dfast += ALPHAFAST * (fabsf(d) - a->dfast);
> @@ -129,16 +128,13 @@ static float AEC_dtd(AEC *a, REAL d, REAL x)
>   // ratio of NFRs
>   ratio = (a->dfast * a->xslow) / (a->dslow * a->xfast);
>
> -  // begrenzte lineare Kennlinie
> -  M = (STEPY2 - STEPY1) / (STEPX2 - STEPX1);
> -  if (ratio < STEPX1) {
> +  // Linear interpolation with clamping at the limits
> +  if (ratio < STEPX1)
>     stepsize = STEPY1;
> -  } else if (ratio > STEPX2) {
> +  else if (ratio > STEPX2)
>     stepsize = STEPY2;
> -  } else {
> -    // Punktrichtungsform einer Geraden
> -    stepsize = M * (ratio - STEPX1) + STEPY1;
> -  }
> +  else
> +    stepsize = STEPY1 + (STEPY2 - STEPY1) * (ratio - STEPX1) / (STEPX2 - STEPX1);
>
>   return stepsize;
>  }
> diff --git a/src/modules/echo-cancel/adrian-aec.h b/src/modules/echo-cancel/adrian-aec.h
> index 235984b..9c722b9 100644
> --- a/src/modules/echo-cancel/adrian-aec.h
> +++ b/src/modules/echo-cancel/adrian-aec.h
> @@ -357,7 +357,7 @@ static  REAL AEC_nlms_pw(AEC *a, REAL d, REAL x_, float stepsize);
>  */
>   int AEC_doAEC(AEC *a, int d_, int x_);
>
> -static  float AEC_getambient(AEC *a) {
> +PA_GCC_UNUSED static  float AEC_getambient(AEC *a) {
>     return a->dfast;
>   };
>  static  void AEC_setambient(AEC *a, float Min_xf) {
> @@ -365,16 +365,15 @@ static  void AEC_setambient(AEC *a, float Min_xf) {
>     a->delta = (NLMS_LEN-1) * Min_xf * Min_xf;
>     a->dotp_xf_xf += a->delta;  // add new delta
>   };
> -static  void AEC_setgain(AEC *a, float gain_) {
> +PA_GCC_UNUSED static  void AEC_setgain(AEC *a, float gain_) {
>     a->gain = gain_;
>   };
>  #if 0
>   void AEC_openwdisplay(AEC *a);
>  #endif
> -static  void AEC_setaes(AEC *a, float aes_y2_) {
> +PA_GCC_UNUSED static  void AEC_setaes(AEC *a, float aes_y2_) {
>     a->aes_y2 = aes_y2_;
>   };
> -static  double AEC_max_dotp_xf_xf(AEC *a, double u);
>
>  #define _AEC_H
>  #endif
> diff --git a/src/modules/echo-cancel/module-echo-cancel.c b/src/modules/echo-cancel/module-echo-cancel.c
> index a3ad169..56fa89e 100644
> --- a/src/modules/echo-cancel/module-echo-cancel.c
> +++ b/src/modules/echo-cancel/module-echo-cancel.c
> @@ -263,7 +263,7 @@ static void time_callback(pa_mainloop_api *a, pa_time_event *e, const struct tim
>     struct userdata *u = userdata;
>     uint32_t old_rate, base_rate, new_rate;
>     int64_t diff_time;
> -    size_t fs;
> +    //size_t fs;
>     struct snapshot latency_snapshot;
>
>     pa_assert(u);
> @@ -281,7 +281,7 @@ static void time_callback(pa_mainloop_api *a, pa_time_event *e, const struct tim
>     /* calculate drift between capture and playback */
>     diff_time = calc_diff(u, &latency_snapshot);
>
> -    fs = pa_frame_size(&u->source_output->sample_spec);
> +    //fs = pa_frame_size(&u->source_output->sample_spec);
>     old_rate = u->sink_input->sample_spec.rate;
>     base_rate = u->source_output->sample_spec.rate;
>
> diff --git a/src/modules/module-rygel-media-server.c b/src/modules/module-rygel-media-server.c
> index 9d23e8a..f34142c 100644
> --- a/src/modules/module-rygel-media-server.c
> +++ b/src/modules/module-rygel-media-server.c
> @@ -380,6 +380,7 @@ static void append_variant_item_display_name(DBusMessage *m, DBusMessageIter *it
>     append_variant_string(m, iter, display_name);
>  }
>
> +PA_GCC_UNUSED
>  static void append_property_dict_entry_object_array(DBusMessage *m, DBusMessageIter *iter, const char *name, const char *path[], unsigned n) {
>     DBusMessageIter sub;
>
> diff --git a/src/modules/module-virtual-sink.c b/src/modules/module-virtual-sink.c
> index cc13490..f772314 100644
> --- a/src/modules/module-virtual-sink.c
> +++ b/src/modules/module-virtual-sink.c
> @@ -203,7 +203,7 @@ static int sink_input_pop_cb(pa_sink_input *i, size_t nbytes, pa_memchunk *chunk
>     size_t fs;
>     unsigned n, c;
>     pa_memchunk tchunk;
> -    pa_usec_t current_latency;
> +    pa_usec_t current_latency PA_GCC_UNUSED;
>
>     pa_sink_input_assert_ref(i);
>     pa_assert(chunk);
> diff --git a/src/pulse/gccmacro.h b/src/pulse/gccmacro.h
> index 57e8050..5749a6b 100644
> --- a/src/pulse/gccmacro.h
> +++ b/src/pulse/gccmacro.h
> @@ -49,7 +49,7 @@
>  #ifdef __GNUC__
>  #define PA_GCC_UNUSED __attribute__ ((unused))
>  #else
> -/** Macro for not used parameter */
> +/** Macro for not used function, variable or parameter */
>  #define PA_GCC_UNUSED
>  #endif
>
> --
> 1.7.1
>
>



More information about the pulseaudio-discuss mailing list