On 07/13/2018 02:53 AM, Christophe Lyon wrote:
Hi,
On Thu, 12 Jul 2018 at 00:04, Martin Sebor <mse...@gmail.com> wrote:
The attached change set adjusts the attribute exclusion code
to detect and reject incompatible attributes before attribute
handlers are called to have a chance to make changes despite
the exclusions. The handlers are not run when a conflict is
found.
Tested on x86_64-linux. I expected the fallout to be bigger
but only a handful of tests needed adjusting and the changes
all look like clear improvements. I.e., conflicting attributes
that diagnosed as being ignored really are being ignored as one
would expect.
Since you committed this patch (r262596), I've noticed regressions on
aarch64/arm:
g++.dg/warn/pr86453.C -std=c++11 (test for warnings, line 4)
g++.dg/warn/pr86453.C -std=c++11 (test for excess errors)
g++.dg/warn/pr86453.C -std=c++14 (test for warnings, line 4)
g++.dg/warn/pr86453.C -std=c++14 (test for excess errors)
g++.dg/warn/pr86453.C -std=c++98 (test for warnings, line 4)
g++.dg/warn/pr86453.C -std=c++98 (test for excess errors)
The log says:
Excess errors:
/gcc/testsuite/g++.dg/warn/pr86453.C:4:44: warning: ignoring attribute
'packed' because it conflicts with attribute 'aligned' [-Wattributes]
Isn't there the same message on x86_64?
There was. The test above was added between the time I tested
my patch and the time I committed it. I adjusted it yesterday
via r262609 so the failure should be gone.
Martin