ignorando el valor de retorno de 'int scanf (const char *, ...)', declarado con el atributo warn_unused_result [-Wunused-result]?

Cuando compilé el siguiente programa como:g++ -O2 -s -static 2.cpp me dio la advertenciaignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result].
Pero cuando me quito-02 de la declaración de copia no se muestra ninguna advertencia.

Mi2.cpp programa:

#include<stdio.h>
int main()
{
   int a,b;
   scanf("%d%d",&a,&b);
   printf("%d\n",a+b);
   return 0;
}


¿Cuál es el significado de esta advertencia y cuál es el significado de-O2 ??

Respuestas a la pregunta(2)

Su respuesta a la pregunta