Background ("PEP 572 and decision-making in Python"):
 replies(2): 
yeah, if you code on 20 years old compilers with no warnings. GCC 4.1 warns about this (with -Wall) and Clang 3.4 warns about this too, without any warning flag.
"Shooting yourself in the foot is your fault for not using a linter that detects accidental misuse of assignment!"
    if(malloc(10000 * sizeof foo) == NULL) {
      // Error processing
    } // No need for an else branch here.    char* p = NULL;
    if (p = malloc(...)) {
      ...
    }