don't access NULL pointers
authorMatthias Braun <matze@braunis.de>
Tue, 12 Aug 2008 08:09:54 +0000 (08:09 +0000)
committerMatthias Braun <matze@braunis.de>
Tue, 12 Aug 2008 08:09:54 +0000 (08:09 +0000)
[r21110]

ir/be/ia32/ia32_common_transform.c

index d8eb5ac..a273dec 100644 (file)
@@ -569,15 +569,17 @@ ir_node *gen_ASM(ir_node *node)
                const arch_register_req_t *req;
 
                parse_asm_constraints(&parsed_constraint, c, 0);
-               r_clobber_bits = clobber_bits[parsed_constraint.cls->index];
-               if (r_clobber_bits != 0) {
-                       if (parsed_constraint.all_registers_allowed) {
-                               parsed_constraint.all_registers_allowed = 0;
-                               be_abi_set_non_ignore_regs(env_cg->birg->abi,
-                                               parsed_constraint.cls,
-                                               &parsed_constraint.allowed_registers);
+               if (parsed_constraint.cls != NULL) {
+                       r_clobber_bits = clobber_bits[parsed_constraint.cls->index];
+                       if (r_clobber_bits != 0) {
+                               if (parsed_constraint.all_registers_allowed) {
+                                       parsed_constraint.all_registers_allowed = 0;
+                                       be_abi_set_non_ignore_regs(env_cg->birg->abi,
+                                                       parsed_constraint.cls,
+                                                       &parsed_constraint.allowed_registers);
+                               }
+                               parsed_constraint.allowed_registers &= ~r_clobber_bits;
                        }
-                       parsed_constraint.allowed_registers &= ~r_clobber_bits;
                }
 
                req = make_register_req(&parsed_constraint, n_out_constraints,