CodeQL library for Rust
codeql/rust-all 0.2.5-dev (changelog, source)
Search

Member predicate Ssa::Definition::getAnUltimateDefinition

Gets a definition that ultimately defines this SSA definition and is not itself a phi node.

Example:

fn phi(b : bool) {
     let mut x = 1;             // defines x_0
     println!("{}", x);
     println!("{}", x + 1);

     if b {
         x = 2;                 // defines x_1
         println!("{}", x);
         println!("{}", x + 1);
     } else {
         x = 3;                 // defines x_2
         println!("{}", x);
         println!("{}", x + 1);
     }
                                // defines x_3 = phi(x_1, x_2); ultimate definitions are x_1 and x_2
     println!("{}", x);
}
Definition getAnUltimateDefinition()