9.66 __attribute__((used)) variable attribute

This variable attribute informs the compiler that a static variable is to be retained in the object file, even if it is unreferenced.

Static variables marked as used are emitted to a single section, in the order they are declared. You can specify the section that variables are placed in using __attribute__((section("name"))).
Data marked with __attribute__((used)) is tagged in the object file to avoid removal by linker unused section removal.

Note

This variable attribute is a GNU compiler extension that the ARM compiler supports.

Note

Static functions can also be marked as used using __attribute__((used)).

Usage

You can use __attribute__((used)) to build tables in the object.

Examples

static int lose_this = 1;
static int keep_this __attribute__((used)) = 2;     // retained in object file
static int keep_this_too __attribute__((used)) = 3; // retained in object file
Related reference
9.49 __attribute__((used)) function attribute
9.46 __attribute__((section("name"))) function attribute
Related information
Elimination of unused sections
Non-ConfidentialPDF file icon PDF versionARM DUI0375E
Copyright © 2007, 2008, 2011, 2012, 2014 ARM. All rights reserved.