gcc -E runs only the preprocessor phase, which expands all macros, processes #include directives, and handles conditional compilation without proceeding to compilation. This outputs the fully preprocessed source code showing all macro expansions, which is exactly what 'all macro entity' refers to. gcc -e is invalid syntax, and gcc -Wall only enables warnings.