May 23, 2007 __BUILTIN_OBJECT_SIZE 3

### NAME

__builtin_object_size - return the size of the given object

### LIBRARY

```size_t` __builtin_object_size(```void *ptr``, int type`)

### DESCRIPTION

The __builtin_object_size(``) function is a gcc(1) built-in function that returns the size of the ```ptr` object if known at compile time and the object does not have any side effects.

### RETURN VALUES

If the size of the object is not known or it has side effects the __builtin_object_size(``) function returns:

```(size_t)-1`
  for ```type` ```0` and ```1`.

```(size_t)0`
  for ```type` ```2` and ```3`.

If the size of the object is known, then the __builtin_object_size(``) function returns the maximum size of all the objects that the compiler knows that they can be pointed to by ```ptr` when ```type` ```&``2``==``0`, and the minimum size when ```type` ```&``2``!=``0`.

### SEE ALSO

gcc(1), ssp(3)

### HISTORY

The __builtin_object_size(``) appeared in gcc 4.1.