Cómo descartar la advertencia "conversión a" char "desde" int "puede alterar su valor"

Pensé que si yocast un número como este(unsigned char)32 será suficiente para arreglar la advertencia del compilador, pero no fue como planeé.

Aquí tengo la siguiente parte del programa que realmente explica el problema:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(void){
    char *ptr = malloc(6);
    const char *name = "MICHI";
    unsigned int i = 0;

    if(ptr){
        strcpy(ptr, name);
        ptr[strlen(ptr)] = '\0';
    }else{
        return 1;
    }

    while(ptr[i] != '\0'){
        if((ptr[i] >= 'A') && (ptr[i] <= 'Z')){
            ptr[i] += (unsigned char)32;
        }
        i++;
    }

    printf("Name = %s\n",ptr);
    if(ptr){
        free(ptr);
        ptr = NULL;
    }
}

Cuando intento compilarlo con las advertencias del compilador ACTIVADAS, obtengo esto:

error: conversion to ‘char’ from ‘int’ may alter its value [-Werror=conversion]|

Esto significa lo siguienteptr[i] += (unsigned char)32; No proporciona una solución a mi problema.

Mi pregunta es cómo descartar esta advertencia porque no tengo idea al respecto.

Ideona no ayuda demasiado, porque creo que todas las advertencias están desactivadas.

Respuestas a la pregunta(4)

Su respuesta a la pregunta