# Data Options

This section contains descriptions for compiler options that pertain to the treatment of data.

Parent topic: Compiler Option Details

- align
  Determines whether variables and arrays are naturally aligned. This content is specific to C++; it does not apply to DPC++.
- fcommon
  Determines whether the compiler treats common symbols as global definitions.
- fkeep-static-consts, Qkeep-static-consts
  Tells the compiler to preserve allocation of variables that are not referenced in the source.
- fmath-errno
  Tells the compiler that errno can be reliably tested after calls to standard math library functions.
- fpack-struct
  Specifies that structure members should be packed together.
- fpascal-strings
  Tells the compiler to allow for Pascal-style string literals. This content is specific to C++; it does not apply to DPC++.
- fpic
  Determines whether the compiler generates position-independent code.
- fpie
  Tells the compiler to generate position-independent code. The generated code can only be linked into executables.
- freg-struct-return
  Tells the compiler to return struct and union values in registers when possible. This content is specific to C++; it does not apply to DPC++.
- fstack-protector
  Enables or disables stack overflow security checks for certain (or all) routines.
- fstack-security-check
  Determines whether the compiler generates code that detects some buffer overruns. This content is specific to C++; it does not apply to DPC++.
- fvisibility
  Specifies the default visibility for global symbols or the visibility for symbols in declarations, functions, or variables. This content is specific to C++; it does not apply to DPC++.
- fzero-initialized-in-bss, Qzero-initialized-in-bss
  Determines whether the compiler places in the DATA section any variables explicitly initialized with zeros.
- GA
  Enables faster access to certain thread-local storage (TLS) variables.
- Gs
  Lets you control the threshold at which the stack checking routine is called or not called.
- GS
  Determines whether the compiler generates code that detects some buffer overruns.
- malign-double
  Determines whether double, long double, and long long types are naturally aligned. This option is equivalent to specifying option align. This content is specific to C++; it does not apply to DPC++.
- mcmodel
  Tells the compiler to use a specific memory model to generate code and store data.
- Qlong-double
  Changes the default size of the long double data type. This content is specific to C++; it does not apply to DPC++.