llvm-project
05dd3ae1 - [SimplifyLibCalls] Prevent orphaned global string literals (#189502)

Commit
3 days ago
[SimplifyLibCalls] Prevent orphaned global string literals (#189502) When `printf` is simplified to `puts`, `SimplifyLibCalls` would eagerly create a global string for the argument before checking if `puts` is emittable. If `puts` is not emittable (e.g. because it's an unextracted bitcode libfunc), the optimization aborts, leaving an orphaned global string in the module. Under expensive checks, this triggers a fatal error because the function pass modified the module without reporting it. This change defers the creation of the global string until after checking if `puts` is emittable. (This PR was created with the help of Gemini CLI.)
Author
Parents
Loading