Deleted Added
sdiff udiff text old ( 233235 ) new ( 245304 )
full compact
1/*
2 * Copyright 2010-2011 PathScale, Inc. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are met:
6 *
7 * 1. Redistributions of source code must retain the above copyright notice,
8 * this list of conditions and the following disclaimer.

--- 56 unchanged lines hidden (view full) ---

65 * These functions are in the public headers for libstdc++, so
66 * we have to assume that someone will probably call them and
67 * expect them to work. Their names must also match the names used in
68 * libsupc++, so that code linking against this library can subclass
69 * type_info and correctly fill in the values in the vtables.
70 */
71 public:
72 /**
73 * Returns true if this is some pointer type, false otherwise.
74 */
75 virtual bool __is_pointer_p() const { return false; }
76 /**
77 * Returns true if this is some function type, false otherwise.
78 */
79 virtual bool __is_function_p() const { return false; }
80 /**
81 * Catch function. Allows external libraries to implement
82 * their own basic types. This is used, for example, in the
83 * GNUstep Objective-C runtime to allow Objective-C types to be
84 * caught in G++ catch blocks.
85 *
86 * The outer parameter indicates the number of outer pointers
87 * in the high bits. The low bit indicates whether the
88 * pointers are const qualified.

--- 9 unchanged lines hidden (view full) ---

98 * the pointer.
99 */
100 virtual bool __do_upcast(
101 const ABI_NAMESPACE::__class_type_info *target,
102 void **thrown_object) const
103 {
104 return false;
105 }
106 };
107}
108
109
110namespace ABI_NAMESPACE
111{
112 /**
113 * Primitive type info, for intrinsic types.

--- 165 unchanged lines hidden (view full) ---

279 __volatile_mask = 0x2,
280 /** Pointer has restrict qualifier. */
281 __restrict_mask = 0x4,
282 /** Pointer points to an incomplete type. */
283 __incomplete_mask = 0x8,
284 /** Pointer is a pointer to a member of an incomplete class. */
285 __incomplete_class_mask = 0x10
286 };
287 virtual bool __do_catch(const type_info *thrown_type,
288 void **thrown_object,
289 unsigned outer) const;
290 };
291
292 /**
293 * Pointer type info.
294 */
295 struct __pointer_type_info : public __pbase_type_info
296 {
297 virtual ~__pointer_type_info();
298 virtual bool __is_pointer_p() const { return true; }
299 };
300
301 /**
302 * Pointer to member type info.
303 */
304 struct __pointer_to_member_type_info : public __pbase_type_info
305 {
306 virtual ~__pointer_to_member_type_info();
307 /**
308 * Pointer to the class containing this member.
309 */
310 const __class_type_info *__context;
311 };
312
313}