summaryrefslogtreecommitdiffstats
path: root/spec/rtems/basedefs/if/obfuscate-variable.yml
diff options
context:
space:
mode:
Diffstat (limited to 'spec/rtems/basedefs/if/obfuscate-variable.yml')
-rw-r--r--spec/rtems/basedefs/if/obfuscate-variable.yml34
1 files changed, 34 insertions, 0 deletions
diff --git a/spec/rtems/basedefs/if/obfuscate-variable.yml b/spec/rtems/basedefs/if/obfuscate-variable.yml
new file mode 100644
index 00000000..7ad18bef
--- /dev/null
+++ b/spec/rtems/basedefs/if/obfuscate-variable.yml
@@ -0,0 +1,34 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+ Obfuscates the variable so that the compiler cannot perform optimizations
+ based on the variable value.
+copyrights:
+- Copyright (C) 2016, 2018 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+ default: |
+ (void) (_var)
+ variants:
+ - definition: |
+ ${/compiler/if/asm:/name}( "" : "+r" ( _var ) )
+ enabled-by:
+ - defined(${/compiler/if/gnuc:/name})
+description: |
+ The variable must be simple enough to fit into a register.
+enabled-by: true
+interface-type: macro
+links:
+- role: interface-placement
+ uid: header
+- role: interface-ingroup
+ uid: group
+name: RTEMS_OBFUSCATE_VARIABLE
+notes: null
+params:
+- description: |
+ is the variable to obfuscate.
+ dir: null
+ name: _var
+return:
+ return: null
+ return-values: []
+type: interface