rtti.c (259947) | rtti.c (260230) |
---|---|
1/* RunTime Type Identification 2 Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 3 2005, 2006 4 Free Software Foundation, Inc. 5 Mostly written by Jason Merrill (jason@cygnus.com). 6 7This file is part of GCC. 8 --- 224 unchanged lines hidden (view full) --- 233 return error_mark_node; 234 235 /* peel back references, so they match. */ 236 type = non_reference (TREE_TYPE (exp)); 237 238 /* Peel off cv qualifiers. */ 239 type = TYPE_MAIN_VARIANT (type); 240 | 1/* RunTime Type Identification 2 Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 3 2005, 2006 4 Free Software Foundation, Inc. 5 Mostly written by Jason Merrill (jason@cygnus.com). 6 7This file is part of GCC. 8 --- 224 unchanged lines hidden (view full) --- 233 return error_mark_node; 234 235 /* peel back references, so they match. */ 236 type = non_reference (TREE_TYPE (exp)); 237 238 /* Peel off cv qualifiers. */ 239 type = TYPE_MAIN_VARIANT (type); 240 |
241 if (!VOID_TYPE_P (type)) | 241 if (CLASS_TYPE_P (type)) |
242 type = complete_type_or_else (type, exp); 243 244 if (!type) 245 return error_mark_node; 246 247 /* If exp is a reference to polymorphic type, get the real type_info. */ 248 if (TYPE_POLYMORPHIC_P (type) && ! resolves_to_fixed_type_p (exp, 0)) 249 { --- 175 unchanged lines hidden (view full) --- 425 typeid expression refers to a type_info object representing the 426 referenced type. */ 427 type = non_reference (type); 428 429 /* The top-level cv-qualifiers of the lvalue expression or the type-id 430 that is the operand of typeid are always ignored. */ 431 type = TYPE_MAIN_VARIANT (type); 432 | 242 type = complete_type_or_else (type, exp); 243 244 if (!type) 245 return error_mark_node; 246 247 /* If exp is a reference to polymorphic type, get the real type_info. */ 248 if (TYPE_POLYMORPHIC_P (type) && ! resolves_to_fixed_type_p (exp, 0)) 249 { --- 175 unchanged lines hidden (view full) --- 425 typeid expression refers to a type_info object representing the 426 referenced type. */ 427 type = non_reference (type); 428 429 /* The top-level cv-qualifiers of the lvalue expression or the type-id 430 that is the operand of typeid are always ignored. */ 431 type = TYPE_MAIN_VARIANT (type); 432 |
433 if (!VOID_TYPE_P (type)) | 433 if (CLASS_TYPE_P (type)) |
434 type = complete_type_or_else (type, NULL_TREE); 435 436 if (!type) 437 return error_mark_node; 438 439 return build_indirect_ref (get_tinfo_ptr (type), NULL); 440} 441 --- 1057 unchanged lines hidden --- | 434 type = complete_type_or_else (type, NULL_TREE); 435 436 if (!type) 437 return error_mark_node; 438 439 return build_indirect_ref (get_tinfo_ptr (type), NULL); 440} 441 --- 1057 unchanged lines hidden --- |