Hi David,
> The purpose of these asm tests is to verify that the analyzer doesn't
> get confused by various inline assembler directives used in the source
> of the Linux kernel. So in theory they ought to work on any host, with
> a gcc configured for a suitable target.
>
> These tests are marked with "dg-do assemble" directives, which I'd
> hoped would mean it uses -S for the tests (to make a .s file), but
> looking at a log locally, it appears to be using -c (to make a .o
> file), so maybe that's what's going wrong for you as well?
The tests even compiled with -S still fail:
spawn -ignore SIGHUP /Users/fx/ibin/gcc/xgcc -B/Users/fx/ibin/gcc/
exceptions_enabled42475.cc -fdiagnostics-plain-output -S -o excep
tions_enabled42475.s
FAIL: gcc.dg/analyzer/torture/asm-x86-linux-cpuid-paravirt-1.c -O1 (test for
excess errors)
Excess errors:
/Users/fx/gcc/gcc/testsuite/gcc.dg/analyzer/torture/asm-x86-linux-cpuid-paravirt-1.c:27:3:
warning: 'asm' operand 6 probably does not match constraints
/Users/fx/gcc/gcc/testsuite/gcc.dg/analyzer/torture/asm-x86-linux-cpuid-paravirt-1.c:27:3:
error: impossible constraint in 'asm'
It’s the same for the other four.
gcc.dg/analyzer/asm-x86-lp64-1.c is slightly different, there it’s an assembler
error:
/var/folders/_8/7ft0tbns6_l87s21n4s_1sc80000gn/T//cc4b3ybm.s:160:20:
error:unexpected token in '.section' directive
.pushsection .text
^
/var/folders/_8/7ft0tbns6_l87s21n4s_1sc80000gn/T//cc4b3ybm.s:162:2: error:
unknown directive
.type add_asm, @function
^
/var/folders/_8/7ft0tbns6_l87s21n4s_1sc80000gn/T//cc4b3ybm.s:167:13: error:
.popsection without corresponding .pushsection
.popsection
^
>>> ## Builtin-related failures
>>>
>>> Those four cases fail:
>>>
>>> gcc.dg/analyzer/data-model-1.c
>>> gcc.dg/analyzer/pr103526.c
>>> gcc.dg/analyzer/taint-size-1.c
>>> gcc.dg/analyzer/write-to-string-literal-1.c
>
> Can you file a bug about this and attach the preprocessed source from
> the test (using -E).
Done, it is https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104042
FX