summaryrefslogtreecommitdiffstats
path: root/spec/rtems/basedefs/req/predict-false-0.yml
diff options
context:
space:
mode:
Diffstat (limited to 'spec/rtems/basedefs/req/predict-false-0.yml')
-rw-r--r--spec/rtems/basedefs/req/predict-false-0.yml24
1 files changed, 24 insertions, 0 deletions
diff --git a/spec/rtems/basedefs/req/predict-false-0.yml b/spec/rtems/basedefs/req/predict-false-0.yml
new file mode 100644
index 00000000..4d05c771
--- /dev/null
+++ b/spec/rtems/basedefs/req/predict-false-0.yml
@@ -0,0 +1,24 @@
+SPDX-License-Identifier: CC-BY-SA-4.0
+copyrights:
+- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: requirement-refinement
+ uid: ../if/predict-false
+non-functional-type: interface
+rationale: |
+ Example: ``if ( ${../if/predict-false:/name}( -1 == i ) ) { ... }``.
+ The GNU C compiler uses this information for branch optimization.
+ ``builtin-expect-probability`` defaults to 90%.
+references: []
+requirement-type: non-functional
+text: |
+ When the code is compiled with the GNU C compiler,
+ and the ${../if/predict-false:/name} macro is used as a conditional
+ in ``if``-expressions and loop expressions,
+ and ${../if/predict-false:/params[0]/name} after undergoing all possible C
+ pre-processor substitutions is an integral expression,
+ the macro shall cause the compiler to assume that by the percentage of
+ cases defined by ``builtin-expect-probability`` the expression evaluates
+ to 0.
+type: requirement