summaryrefslogtreecommitdiffstats
path: root/spec/rtems/basedefs/req/dequalify-depthx-0.yml
diff options
context:
space:
mode:
Diffstat (limited to 'spec/rtems/basedefs/req/dequalify-depthx-0.yml')
-rw-r--r--spec/rtems/basedefs/req/dequalify-depthx-0.yml29
1 files changed, 29 insertions, 0 deletions
diff --git a/spec/rtems/basedefs/req/dequalify-depthx-0.yml b/spec/rtems/basedefs/req/dequalify-depthx-0.yml
new file mode 100644
index 00000000..7f86363c
--- /dev/null
+++ b/spec/rtems/basedefs/req/dequalify-depthx-0.yml
@@ -0,0 +1,29 @@
+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/dequalify-depthx
+non-functional-type: interface
+rationale: |
+ ${../if/dequalify-depthx:/name} checks for incompatible pointer types.
+references: []
+requirement-type: non-functional
+text: |
+ When the argument value of ${../if/dequalify-depthx:/params[0]/name} consists
+ of a sequence of *i* ``*`` and the types of both other arguments both
+ have *i* nested pointers (for example ``*`` for a pointer to ``int``,
+ ``**`` for a pointer to a pointer of ``int``, ``***`` for a pointer to
+ a pointer to a pointer to ``int``),
+ and ${../if/dequalify-depthx:/params[1]/name} is a pointer type with
+ different (compared to the type of
+ ${../if/dequalify-depthx:/params[2]/name}) qualifiers
+ (such as ``const`` or ``volatile``) or the same qualifiers or
+ without any qualifiers,
+ and the types of ${../if/dequalify-depthx:/params[1]/name} and
+ ${../if/dequalify-depthx:/params[2]/name} are compatible in the sense of C,
+ the macro ${../if/dequalify-depthx:/name} shall result in an expression
+ which returns a pointer of type ${../if/dequalify-depthx:/params[1]/name}
+ pointing to the same address as ${../if/dequalify-depthx:/params[2]/name}.
+type: requirement