Fix: tracepoint.h: Disable address sanitizer on pointer array section variables
[lttng-ust.git] / include / lttng / ust-compiler.h
index c35a23e1dfc5aa8b0f1e0e07a931979739116e78..31eaf73c0139026b9adbb8c87ca7076c0df77125 100644 (file)
  *
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
  */
 
 #define lttng_ust_notrace __attribute__((no_instrument_function))
+#define LTTNG_PACKED   __attribute__((__packed__))
+
+/*
+ * Clang supports the no_sanitize variable attribute on global variables.
+ * GCC only supports the no_sanitize_address function attribute, which is
+ * not what we need.
+ */
+#if defined(__clang__)
+# if __has_feature(address_sanitizer)
+#  define __lttng_ust_variable_attribute_no_sanitize_address \
+       __attribute__((no_sanitize("address")))
+# else
+#  define __lttng_ust_variable_attribute_no_sanitize_address
+# endif
+#else
+#  define __lttng_ust_variable_attribute_no_sanitize_address
+#endif
 
 #endif /* _LTTNG_UST_COMPILER_H */
This page took 0.044218 seconds and 4 git commands to generate.