[llvm-bugs] [Bug 33610] New: Semantics of __attribute__((target("...")) on platforms without the feature

via llvm-bugs llvm-bugs at lists.llvm.org
Tue Jun 27 06:40:32 PDT 2017


https://bugs.llvm.org/show_bug.cgi?id=33610

            Bug ID: 33610
           Summary: Semantics of __attribute__((target("...")) on
                    platforms without the feature
           Product: clang
           Version: trunk
          Hardware: PC
                OS: All
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Documentation
          Assignee: unassignedclangbugs at nondot.org
          Reporter: gonzalobg88 at gmail.com
                CC: llvm-bugs at lists.llvm.org

Intrinsics in the AVX headers are annotated with
__attribute__((__target__("avx"))) and have no preconditions. 

The documentation of the target attribute is here:
https://clang.llvm.org/docs/AttributeReference.html#target-gnu-target

It doesn't specify any pre/post conditions either.

What are the semantics of calling such a function on a target that does not
support the feature specified by the target attribute?

In practice I can get a SIGILL exception, but am I guaranteed to get one (and
can I reliably catch it?)? That is, is this defined or implementation defined
behavior? If is so, how and where is it defined? Otherwise, is this undefined
behavior? And if so, where is this undefined(clang, llvm, the assembler, the
cpu)?

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20170627/74d66c5f/attachment.html>


More information about the llvm-bugs mailing list