+} ir_disambuigator_options;
+
+/**
+ * Classify storage locations.
+ * Except ir_sc_pointer they are all disjoint.
+ * ir_sc_pointer potentially aliases all classes which don't have a
+ * NOTTAKEN modifier.
+ */
+typedef enum {
+ ir_sc_pointer = 0x0, /**< generic pointer, may be anything */
+ ir_sc_globalvar = 0x1, /**< an address of a global variable */
+ ir_sc_localvar = 0x2, /**< an address of a local variable */
+ ir_sc_argument = 0x3, /**< an method argument */
+ ir_sc_tls = 0x4, /**< an address of a thread local storage variable */
+ ir_sc_malloced = 0x5, /**< an allocated heap address */
+
+ ir_sc_modifier_nottaken = 0x80 /**< if set, the address of the variable was not taken */
+} ir_storage_class_class_t;