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? > Martin