]> granicus.if.org Git - clang/commit
Merging r345826:
authorTom Stellard <tstellar@redhat.com>
Sat, 8 Dec 2018 04:42:42 +0000 (04:42 +0000)
committerTom Stellard <tstellar@redhat.com>
Sat, 8 Dec 2018 04:42:42 +0000 (04:42 +0000)
commit0fef2183272c3bfc9a0cb6707abee1bc8fd4ec57
tree2ef475d40963c3dc80da35bd6bb00e1cf18d33b3
parent5f0402da8b29d33e09f69eccf2d022eaaba5a56e
Merging r345826:

------------------------------------------------------------------------
r345826 | erichkeane | 2018-11-01 05:50:37 -0700 (Thu, 01 Nov 2018) | 15 lines

CPU-Dispatch-- Fix conflict between 'generic' and 'pentium'

When a dispatch function was being emitted that had both a generic and a
pentium configuration listed, we would assert.  This is because neither
configuration has any 'features' associated with it so they were both
considered the 'default' version.  'pentium' lacks any features because
we implement it in terms of __builtin_cpu_supports (instead of Intel
proprietary checks), which is unable to decern between the two.

The fix for this is to omit the 'generic' version from the dispatcher if
both are present. This permits existing code to compile, and still will
choose the 'best' version available (since 'pentium' is technically
better than 'generic').

Change-Id: I4b69f3e0344e74cbdbb04497845d5895dd05fda0
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_70@348682 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/CodeGenModule.cpp
test/CodeGen/attr-cpuspecific.c