# Optional attribute and compiler optimisation?

**URL:** <https://fortran-lang.discourse.group/t/optional-attribute-and-compiler-optimisation/7649>\
**Category:** Compilers\
**Created:** [March 18, 2024, 8:08pm UTC](https://fortran-lang.discourse.group/t/optional-attribute-and-compiler-optimisation/7649 "2024-03-18T20:08:28Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![vmagnin](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/vmagnin/32/28_2.png) [@vmagnin](https://fortran-lang.discourse.group/u/vmagnin)\
**Post date:** [March 18, 2024, 8:08pm UTC](https://fortran-lang.discourse.group/t/optional-attribute-and-compiler-optimisation/7649/1 "2024-03-18T20:08:28Z")

</div>

I was just thinking about the `optional` attribute, `present()` and optimisation by compilers.

```fortran
subroutine foo(arg1, arg2)
real, intent(in) :: arg1
real, optional, intent(in) :: arg2

if (present(arg2)) then blabla...

```

If I use some aggressive optimization option implying inlining, will the compiler remove the `if` statement if `arg2` is not present in a call? (I guess or I hope so)

---

<div class="post-metadata">

**Author:** ![sblionel](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/sblionel/32/853_2.png) [@sblionel](https://fortran-lang.discourse.group/u/sblionel)\
**Post date:** [March 19, 2024, 12:33am UTC](https://fortran-lang.discourse.group/t/optional-attribute-and-compiler-optimisation/7649/2 "2024-03-19T00:33:22Z")

</div>

It certainly could, but no guarantees.
