Hi Matthew,

Thank you for addressing the const qualifier warning in qtest_verbose(). Your
fix correctly resolves the immediate compilation issue with modern compilers.

I had independently worked on this same issue and submitted a similar fix as
part of a patch series:

  https://lore.kernel.org/all/[email protected]/

While both our approaches fix the immediate strstr() warning by making 'found'
const, I noticed that getenv() still returns char * despite environment strings
being semantically read-only. This creates a subtle const-correctness gap that
stricter compilers (like GCC 16) may flag in the future.

I've prepared an improved v2 patch [2] that builds upon your merged fix by using
g_getenv() and g_strstr_len() to maintain const correctness throughout. This
approach:

- Uses g_getenv() which returns const gchar *, matching the read-only semantics
  of environment variables
- Employs g_strstr_len() for consistent use of GLib string functions, aligning
  with QEMU conventions
- Eliminates all const-correctness warnings with strict compilers The v2 patch
  supersedes my earlier attempt and is rebased on top of your merged commit
  (e68da5b7a2cd).

Thanks again for the quick fix!

[1] https://lore.kernel.org/all/[email protected]/
[2] https://lore.kernel.org/all/[email protected]/

Regards,
Amit

On 2026/05/18 12:53 PM, Fabiano Rosas wrote:
> From: Matthew Penney <[email protected]>
> 
> Modern compilers warn that the result of strstr() may discard
> const qualifiers when assigned to a non-const pointer.
> 
> Make 'found' a const char * to fix the warning.
> 
> Signed-off-by: Matthew Penney <[email protected]>
> Reviewed-by: Thomas Huth <[email protected]>
> Tested-by: Thomas Huth <[email protected]>
> Reviewed-by: Marc-André Lureau <[email protected]>
> Tested-by: Philippe Mathieu-Daudé <[email protected]>
> Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
> Reviewed-by: Pierrick Bouvier <[email protected]>
> Signed-off-by: Fabiano Rosas <[email protected]>
> ---
>  tests/qtest/libqtest.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tests/qtest/libqtest.c b/tests/qtest/libqtest.c
> index bf9284b9a1..b1e06ea364 100644
> --- a/tests/qtest/libqtest.c
> +++ b/tests/qtest/libqtest.c
> @@ -2146,7 +2146,7 @@ bool mkimg(const char *file, const char *fmt, unsigned 
> size_mb)
>  bool qtest_verbose(const char *domain)
>  {
>      const char *log = getenv("QTEST_LOG");
> -    char *found;
> +    const char *found;
>  
>      assert(domain);
>  
> -- 
> 2.51.0
> 
> 

Reply via email to