Commit Graph

87 Commits

Author SHA1 Message Date
Joseph Myers
9fb5348e30 testsuite: Prepare for -std=gnu23 default
Now that C23 support is essentially feature-complete, I'd like to
switch the default language version for C compilation to -std=gnu23.

This requires updating a large number of testcases that fail with the
new language version if left unchanged.  In this patch, update most of
the tests for which there is a safe change that works both before and
after the update to default language version - typically adding the
option -std=gnu17 or -Wno-old-style-definition to the tests.  (There
are also a few tests where I'd like to investigate further why they
fail with -std=gnu23, or where I think such failures show an actual
bug to fix before changing the default language version, or where it
seems more appropriate to make a testcase change that would result in
failures in the absence of the language version change rather than
just adding an option that does nothing with the gnu17 default.)

The libffi test fixes have also been submitted upstream:
<https://github.com/libffi/libffi/pull/861>.

Most of the failures requiring such changes are for one of two
reasons:

* Unprototyped function declarations with () (meaning the same as
  (void) in C23 mode) for a function then called with arguments.

* Old-style function definitions, which warn by default in C23 mode,
  so resulting in test failures for the unexpected warnings.

Other reasons for failures include:

* Tests with their own definitions of bool, true and false.

* Tests of diagnostics (often with -pedantic) in cases where C23 has
  changed semantics, such as:

  - tag compatibility for structs;
  - enum values out of range of int;
  - handing of qualified array types;
  - decimal floating types formerly needing -pedantic diagnostics, but
    being standard in C23.

Bootstrapped with no regressions for x86_64-pc-linux-gnu.

gcc/testsuite/
	* c-c++-common/Wcast-function-type.c: Add -std=gnu17 for C.
	* c-c++-common/Wformat-pr84258.c: Add -std=gnu17 for C.
	* c-c++-common/Wvarargs.c: Add -std=gnu17 for C.
	* c-c++-common/analyzer/data-model-12.c: Add -std=gnu17 for C.
	* c-c++-common/builtins.c: Add -std=gnu17 for C.
	* c-c++-common/pointer-to-fn1.c: Add -std=gnu17 for C.
	* c-c++-common/pragma-diag-17.c: Add -std=gnu17 for C.
	* c-c++-common/sizeof-array-argument.c: Add
	-Wno-old-style-definition for C.
	* g++.dg/lto/pr54625-1_0.c: Add -std=gnu17.
	* g++.dg/lto/pr54625-2_0.c: Add -std=gnu17.
	* gcc.c-torture/compile/20040214-2.c: Add -std=gnu17.
	* gcc.c-torture/compile/921011-2.c: Add -std=gnu17.
	* gcc.c-torture/compile/931102-1.c: Add -std=gnu17.
	* gcc.c-torture/compile/990801-1.c: Add -std=gnu17.
	* gcc.c-torture/compile/nested-1.c: Add -std=gnu17.
	* gcc.c-torture/compile/pr100241-1.c: Add -std=gnu17.
	* gcc.c-torture/compile/pr106101.c: Add -std=gnu17.
	* gcc.c-torture/compile/pr113616.c: Add -std=gnu17.
	* gcc.c-torture/compile/pr47967.c: Add -std=gnu17.
	* gcc.c-torture/compile/pr51694.c: Add -std=gnu17.
	* gcc.c-torture/compile/pr71109.c: Add -std=gnu17.
	* gcc.c-torture/compile/pr83051-2.c: Add -std=gnu17.
	* gcc.c-torture/compile/pr89663-1.c: Add -std=gnu17.
	* gcc.c-torture/compile/pr94238.c: Add -std=gnu17.
	* gcc.c-torture/compile/pr96796.c: Add -std=gnu17.
	* gcc.c-torture/compile/pr97576.c: Add -std=gnu17.
	* gcc.c-torture/compile/udivmod4.c: Add -std=gnu17.
	* gcc.c-torture/execute/20010605-2.c: Add -std=gnu17.
	* gcc.c-torture/execute/20020404-1.c: Add -std=gnu17.
	* gcc.c-torture/execute/20030714-1.c: Add -std=gnu17.
	* gcc.c-torture/execute/20051012-1.c: Add -std=gnu17.
	* gcc.c-torture/execute/20190820-1.c: Add -std=gnu17.
	* gcc.c-torture/execute/920612-1.c: Add -Wno-old-style-definition.
	* gcc.c-torture/execute/930608-1.c: Add -std=gnu17.
	* gcc.c-torture/execute/comp-goto-1.c: Add -std=gnu17.
	* gcc.c-torture/execute/ieee/fp-cmp-1.x: Add -std=gnu17.
	* gcc.c-torture/execute/ieee/fp-cmp-2.x: Add -std=gnu17.
	* gcc.c-torture/execute/ieee/fp-cmp-3.x: Add -std=gnu17.
	* gcc.c-torture/execute/ieee/fp-cmp-4.x: New file.
	* gcc.c-torture/execute/ieee/fp-cmp-4f.x: New file.
	* gcc.c-torture/execute/ieee/fp-cmp-4l.x: New file.
	* gcc.c-torture/execute/loop-9.c: Add -std=gnu17.
	* gcc.c-torture/execute/pr103209.c: Add -std=gnu17.
	* gcc.c-torture/execute/pr28289.c: Add -std=gnu17.
	* gcc.c-torture/execute/pr34982.c: Add -std=gnu17.
	* gcc.c-torture/execute/pr67037.c: Add -std=gnu17.
	* gcc.c-torture/execute/va-arg-2.c: Add -std=gnu17.
	* gcc.dg/20010202-1.c: Add -std=gnu17.
	* gcc.dg/20020430-1.c: Add -std=gnu17.
	* gcc.dg/20031218-3.c: Add -std=gnu17.
	* gcc.dg/20040127-1.c: Add -std=gnu17.
	* gcc.dg/20041014-1.c: Add -Wno-old-style-definition.
	* gcc.dg/20041122-1.c: Add -std=gnu17.
	* gcc.dg/20050309-1.c: Add -std=gnu17.
	* gcc.dg/20061026.c: Add -std=gnu17.
	* gcc.dg/20101010-1.c: Add -std=gnu17.
	* gcc.dg/Warray-parameter-10.c: Add -std=gnu17.
	* gcc.dg/Wbuiltin-declaration-mismatch-2.c: Add -std=gnu17.
	* gcc.dg/Wbuiltin-declaration-mismatch-3.c: Add -std=gnu17.
	* gcc.dg/Wbuiltin-declaration-mismatch-4.c: Add -std=gnu17.
	* gcc.dg/Wbuiltin-declaration-mismatch-5.c: Add -std=gnu17.
	* gcc.dg/Wbuiltin-declaration-mismatch.c: Add -std=gnu17.
	* gcc.dg/Wcxx-compat-2.c: Add -std=gnu17.
	* gcc.dg/Wdouble-promotion.c: Add -std=gnu17.
	* gcc.dg/Wfree-nonheap-object-7.c: Add -std=gnu17.
	* gcc.dg/Wimplicit-int-1.c: Add -std=gnu17.
	* gcc.dg/Wimplicit-int-1a.c: Add -std=gnu17.
	* gcc.dg/Wimplicit-int-2.c: Add -std=gnu17.
	* gcc.dg/Wimplicit-int-3.c: Add -std=gnu17.
	* gcc.dg/Wimplicit-int-4.c: Add -std=gnu17.
	* gcc.dg/Wimplicit-int-4a.c: Add -std=gnu17.
	* gcc.dg/Wincompatible-pointer-types-1.c: Add -std=gnu17.
	* gcc.dg/Wrestrict-19.c: Add -std=gnu17.
	* gcc.dg/Wrestrict-4.c: Add -std=gnu17.
	* gcc.dg/Wrestrict-5.c: Add -std=gnu17.
	* gcc.dg/Wstrict-overflow-20.c: Add -std=gnu17.
	* gcc.dg/Wstringop-overflow-13.c: Add -std=gnu17.
	* gcc.dg/analyzer/doom-d_main-IdentifyVersion.c: Add -std=gnu17.
	* gcc.dg/analyzer/doom-s_sound-pr108867.c: Add -std=gnu17.
	* gcc.dg/analyzer/pr93032-mztools-signed-char.c: Add
	-Wno-old-style-definition.
	* gcc.dg/analyzer/pr93032-mztools-unsigned-char.c: Add
	-Wno-old-style-definition.
	* gcc.dg/analyzer/pr93355-localealias.c: Add
	-Wno-old-style-definition.
	* gcc.dg/analyzer/pr93375.c: Add -std=gnu17.
	* gcc.dg/analyzer/pr94688.c: Add -std=gnu17.
	* gcc.dg/analyzer/sensitive-1.c: Add -std=gnu17.
	* gcc.dg/analyzer/torture/asm-x86-linux-wfx_get_ps_timeout-full.c:
	Add -std=gnu17.
	* gcc.dg/analyzer/torture/pr104863.c: Add -std=gnu17.
	* gcc.dg/analyzer/torture/pr93379.c: Add -std=gnu17.
	* gcc.dg/array-quals-2.c: Add -std=gnu17.
	* gcc.dg/attr-invalid.c: Add -Wno-old-style-definition.
	* gcc.dg/auto-init-uninit-A.c: Add -Wno-old-style-definition.
	* gcc.dg/builtin-choose-expr.c: Declare exit with (int) prototype.
	* gcc.dg/builtin-tgmath-err-1.c: Add -std=gnu17.
	* gcc.dg/builtins-30.c: Add -std=gnu17.
	* gcc.dg/cast-function-1.c: Add -std=gnu17.
	* gcc.dg/cleanup-1.c: Add -std=gnu17.
	* gcc.dg/compat/struct-complex-1_x.c: Add -std=gnu17.
	* gcc.dg/compat/struct-complex-2_x.c: Add -std=gnu17.
	* gcc.dg/compat/union-m128-1_x.c: Add -std=gnu17.
	* gcc.dg/debug/dwarf2/pr66482.c: Add -std=gnu17.
	* gcc.dg/dfp/composite-type-2.c: Add -std=gnu17.
	* gcc.dg/dfp/composite-type.c: Add -std=gnu17.
	* gcc.dg/dfp/keywords-pedantic.c: Add -std=gnu17.
	* gcc.dg/dremf-type-compat-1.c: Add -std=gnu17.
	* gcc.dg/dremf-type-compat-2.c: Add -std=gnu17.
	* gcc.dg/dremf-type-compat-3.c: Add -std=gnu17.
	* gcc.dg/dremf-type-compat-4.c: Add -std=gnu17.
	* gcc.dg/enum-compat-1.c: Add -std=gnu17.
	* gcc.dg/enum-compat-2.c: Add -std=gnu17.
	* gcc.dg/floatn-errs.c: Add -std=gnu17.
	* gcc.dg/fltconst-pedantic-dfp.c: Add -std=gnu17.
	* gcc.dg/format/proto.c: Add -std=gnu17.
	* gcc.dg/format/sentinel-1.c: Add -std=gnu17.
	* gcc.dg/gomp/declare-simd-1.c: Add -Wno-old-style-definition.
	* gcc.dg/ifelse-1.c: Add -Wno-old-style-definition.
	* gcc.dg/inline-33.c: Add -std=gnu17.
	* gcc.dg/ipa/inline-5.c: Add -std=gnu17.
	* gcc.dg/ipa/ipa-sra-21.c: Add -std=gnu17.
	* gcc.dg/ipa/pr102714.c: Add -std=gnu17.
	* gcc.dg/ipa/pr104813.c: Add -std=gnu17.
	* gcc.dg/ipa/pr108679.c: Add -std=gnu17.
	* gcc.dg/ipa/pr42706.c: Add -std=gnu17.
	* gcc.dg/ipa/pr88214.c: Add -Wno-old-style-definition.
	* gcc.dg/ipa/pr91853.c: Add -Wno-old-style-definition.
	* gcc.dg/ipa/pr93763.c: Add -std=gnu17.
	* gcc.dg/ipa/pr96482-2.c: Add -std=gnu17.
	* gcc.dg/lto/20091013-1_2.c: Add -std=gnu17.
	* gcc.dg/lto/20091015-1_2.c: Add -std=gnu17.
	* gcc.dg/lto/pr113197_1.c: Add -std=gnu17.
	* gcc.dg/lto/pr54702_1.c: Add -std=gnu17.
	* gcc.dg/lto/pr99849_0.c: Add -std=gnu17.
	* gcc.dg/noncompile/920923-1.c: Add -std=gnu17.
	* gcc.dg/noncompile/old-style-parm-1.c: Add
	-Wno-old-style-definition.
	* gcc.dg/noncompile/old-style-parm-3.c: Add
	-Wno-old-style-definition.
	* gcc.dg/noncompile/pr30552-2.c: Add -Wno-old-style-definition.
	* gcc.dg/noncompile/pr30552-3.c: Add -std=gnu17.
	* gcc.dg/noncompile/pr71265.c: Add -Wno-old-style-definition.
	* gcc.dg/noncompile/pr79758-2.c: Add -Wno-old-style-definition.
	* gcc.dg/noncompile/pr79758.c: Add -Wno-old-style-definition.
	* gcc.dg/noncompile/va-arg-1.c: Add -std=gnu17.
	* gcc.dg/old-style-prom-1.c: Add -std=gnu17.
	* gcc.dg/old-style-prom-2.c: Add -std=gnu17.
	* gcc.dg/old-style-prom-3.c: Add -std=gnu17.
	* gcc.dg/old-style-then-proto-1.c: Add -std=gnu17.
	* gcc.dg/parm-incomplete-1.c: Add -std=gnu17.
	* gcc.dg/parm-mismatch-1.c: Add -std=gnu17.
	* gcc.dg/permerror-default.c: Add -std=gnu17.
	* gcc.dg/permerror-fpermissive-nowarning.c: Add -std=gnu17.
	* gcc.dg/permerror-fpermissive.c: Add -std=gnu17.
	* gcc.dg/permerror-noerror.c: Add -std=gnu17.
	* gcc.dg/permerror-nowarning.c: Add -std=gnu17.
	* gcc.dg/permerror-pedantic.c: Add -std=gnu17.
	* gcc.dg/plugin/infoleak-net-ethtool-ioctl.c: Add -std=gnu17.
	* gcc.dg/pointer-array-quals-1.c: Add -std=gnu17.
	* gcc.dg/pointer-array-quals-2.c: Add -std=gnu17.
	* gcc.dg/pr100791.c: Add -std=gnu17.
	* gcc.dg/pr100843.c: Add -std=gnu17.
	* gcc.dg/pr102273.c: Add -std=gnu17.
	* gcc.dg/pr102385.c: Add -std=gnu17.
	* gcc.dg/pr103222.c: Add -std=gnu17.
	* gcc.dg/pr105140.c: Add -std=gnu17.
	* gcc.dg/pr105150.c: Add -std=gnu17.
	* gcc.dg/pr105250.c: Add -std=gnu17.
	* gcc.dg/pr105972.c: Add -Wno-old-style-definition.
	* gcc.dg/pr111039.c: Add -std=gnu17.
	* gcc.dg/pr111407.c: Add -std=gnu17.
	* gcc.dg/pr111922.c: Add -Wno-old-style-definition.
	* gcc.dg/pr15236.c: Add -std=gnu17.
	* gcc.dg/pr17188-1.c: Add -std=gnu17.
	* gcc.dg/pr20368-1.c: Add -std=gnu17.
	* gcc.dg/pr20368-2.c: Add -std=gnu17.
	* gcc.dg/pr20368-3.c: Add -std=gnu17.
	* gcc.dg/pr27331.c: Add -Wno-old-style-definition.
	* gcc.dg/pr27861-1.c: Add -std=gnu17.
	* gcc.dg/pr28121.c: Add -std=gnu17.
	* gcc.dg/pr28243.c: Add -std=gnu17.
	* gcc.dg/pr28888.c: Add -std=gnu17.
	* gcc.dg/pr29254.c: Add -std=gnu17.
	* gcc.dg/pr34457-1.c: Add -std=gnu17.
	* gcc.dg/pr36015.c: Add -std=gnu17.
	* gcc.dg/pr38245-3.c: Add -std=gnu17.
	* gcc.dg/pr38245-4.c: Add -std=gnu17.
	* gcc.dg/pr41241.c: Add -std=gnu17.
	* gcc.dg/pr43058.c: Add -std=gnu17.
	* gcc.dg/pr44539.c: Add -std=gnu17.
	* gcc.dg/pr45055.c: Add -std=gnu17.
	* gcc.dg/pr50908.c: Add -Wno-old-style-definition.
	* gcc.dg/pr60647-1.c: Add -Wno-old-style-definition.
	* gcc.dg/pr63762.c: Add -std=gnu17.
	* gcc.dg/pr63804.c: Add -std=gnu17.
	* gcc.dg/pr68306-3.c: Add -std=gnu17.
	* gcc.dg/pr68533.c: Add -std=gnu17.
	* gcc.dg/pr69156.c: Add -std=gnu17.
	* gcc.dg/pr7356-2.c: Add -Wno-old-style-definition.
	* gcc.dg/pr79983.c: Add -std=gnu17.
	* gcc.dg/pr83463.c: Add -std=gnu17.
	* gcc.dg/pr87347.c: Add -std=gnu17.
	* gcc.dg/pr89521-1.c: Add -std=gnu17.
	* gcc.dg/pr89521-2.c: Add -std=gnu17.
	* gcc.dg/pr90648.c: Add -std=gnu17.
	* gcc.dg/pr93573-1.c: Add -std=gnu17.
	* gcc.dg/pr94167.c: Add -std=gnu17.
	* gcc.dg/pr94705.c: Add -std=gnu17.
	* gcc.dg/pr95118.c: Add -std=gnu17.
	* gcc.dg/pr96335.c: Add -std=gnu17.
	* gcc.dg/pr97830.c: Add -std=gnu17.
	* gcc.dg/pr97882.c: Add -std=gnu17.
	* gcc.dg/pr99122-2.c: Add -std=gnu17.
	* gcc.dg/pr99122-3.c: Add -std=gnu17.
	* gcc.dg/qual-component-1.c: Add -std=gnu17.
	* gcc.dg/sibcall-6.c: Add -Wno-old-style-definition.
	* gcc.dg/sms-2.c: Add -Wno-old-style-definition.
	* gcc.dg/tm/20091221.c: Add -std=gnu17.
	* gcc.dg/torture/bfloat16-basic.c: Add -Wno-old-style-definition.
	* gcc.dg/torture/float128-basic.c: Add -Wno-old-style-definition.
	* gcc.dg/torture/float128x-basic.c: Add -Wno-old-style-definition.
	* gcc.dg/torture/float16-basic.c: Add -Wno-old-style-definition.
	* gcc.dg/torture/float32-basic.c: Add -Wno-old-style-definition.
	* gcc.dg/torture/float32x-basic.c: Add -Wno-old-style-definition.
	* gcc.dg/torture/float64-basic.c: Add -Wno-old-style-definition.
	* gcc.dg/torture/float64x-basic.c: Add -Wno-old-style-definition.
	* gcc.dg/torture/pr102762.c: Add -std=gnu17.
	* gcc.dg/torture/pr103987.c: Add -std=gnu17.
	* gcc.dg/torture/pr104825.c: Add -Wno-old-style-definition.
	* gcc.dg/torture/pr105166.c: Add -std=gnu17.
	* gcc.dg/torture/pr105185.c: Add -Wno-old-style-definition.
	* gcc.dg/torture/pr109652.c: Add -std=gnu17.
	* gcc.dg/torture/pr112444.c: Add -std=gnu17.
	* gcc.dg/torture/pr113895-3.c: Add -std=gnu17.
	* gcc.dg/torture/pr24626-2.c: Add -std=gnu17.
	* gcc.dg/torture/pr25183.c: Add -std=gnu17.
	* gcc.dg/torture/pr38948.c: Add -std=gnu17.
	* gcc.dg/torture/pr44807.c: Add -std=gnu17.
	* gcc.dg/torture/pr47281.c: Add -std=gnu17.
	* gcc.dg/torture/pr47958-1.c: Add -Wno-old-style-definition.
	* gcc.dg/torture/pr48063.c: Add -std=gnu17.
	* gcc.dg/torture/pr57036-1.c: Add -std=gnu17.
	* gcc.dg/torture/pr57330.c: Add -std=gnu17.
	* gcc.dg/torture/pr57584.c: Add -std=gnu17.
	* gcc.dg/torture/pr67741.c: Add -std=gnu17.
	* gcc.dg/torture/pr68104.c: Add -std=gnu17.
	* gcc.dg/torture/pr69242.c: Add -std=gnu17.
	* gcc.dg/torture/pr70457.c: Add -std=gnu17.
	* gcc.dg/torture/pr70985.c: Add -std=gnu17.
	* gcc.dg/torture/pr71606.c: Add -std=gnu17.
	* gcc.dg/torture/pr71816.c: Add -std=gnu17.
	* gcc.dg/torture/pr77286.c: Add -std=gnu17.
	* gcc.dg/torture/pr77646.c: Add -std=gnu17.
	* gcc.dg/torture/pr77677-2.c: Add -std=gnu17.
	* gcc.dg/torture/pr78365.c: Add -Wno-old-style-definition.
	* gcc.dg/torture/pr79732.c: Add -std=gnu17.
	* gcc.dg/torture/pr80612.c: Add -std=gnu17.
	* gcc.dg/torture/pr80764.c: Add -std=gnu17.
	* gcc.dg/torture/pr80842.c: Add -std=gnu17.
	* gcc.dg/torture/pr81900.c: Add -std=gnu17.
	* gcc.dg/torture/pr82276.c: Add -std=gnu17.
	* gcc.dg/torture/pr84803.c: Add -std=gnu17.
	* gcc.dg/torture/pr93124.c: Add -std=gnu17.
	* gcc.dg/torture/pr97330-1.c: Add -Wno-old-style-definition.
	* gcc.dg/tree-prof/comp-goto-1.c: Add -std=gnu17.
	* gcc.dg/tree-ssa/20030703-2.c: Add -Wno-old-style-definition.
	* gcc.dg/tree-ssa/20030708-1.c: Add -Wno-old-style-definition.
	* gcc.dg/tree-ssa/20030709-2.c: Add -Wno-old-style-definition.
	* gcc.dg/tree-ssa/20030709-3.c: Add -Wno-old-style-definition.
	* gcc.dg/tree-ssa/20030710-1.c: Add -Wno-old-style-definition.
	* gcc.dg/tree-ssa/20030711-1.c: Add -Wno-old-style-definition.
	* gcc.dg/tree-ssa/20030711-2.c: Add -Wno-old-style-definition.
	* gcc.dg/tree-ssa/20030711-3.c: Add -Wno-old-style-definition.
	* gcc.dg/tree-ssa/20030714-1.c: Add -Wno-old-style-definition.
	* gcc.dg/tree-ssa/20030714-2.c: Add -Wno-old-style-definition.
	* gcc.dg/tree-ssa/20030728-1.c: Add -Wno-old-style-definition.
	* gcc.dg/tree-ssa/20030807-10.c: Add -Wno-old-style-definition.
	* gcc.dg/tree-ssa/20030807-11.c: Add -Wno-old-style-definition.
	* gcc.dg/tree-ssa/20030807-3.c: Add -Wno-old-style-definition.
	* gcc.dg/tree-ssa/20030807-6.c: Add -Wno-old-style-definition.
	* gcc.dg/tree-ssa/20030807-7.c: Add -Wno-old-style-definition.
	* gcc.dg/tree-ssa/20030814-4.c: Add -Wno-old-style-definition.
	* gcc.dg/tree-ssa/20030814-5.c: Add -Wno-old-style-definition.
	* gcc.dg/tree-ssa/20030814-6.c: Add -Wno-old-style-definition.
	* gcc.dg/tree-ssa/20030918-1.c: Add -Wno-old-style-definition.
	* gcc.dg/tree-ssa/20040514-2.c: Add -Wno-old-style-definition.
	* gcc.dg/tree-ssa/loadpre7.c: Add -Wno-old-style-definition.
	* gcc.dg/tree-ssa/pr111003.c: Add -std=gnu17.
	* gcc.dg/tree-ssa/pr115128.c: Add -std=gnu17.
	* gcc.dg/tree-ssa/pr115191.c: Add -std=gnu17.
	* gcc.dg/tree-ssa/pr24840.c: Add -std=gnu17.
	* gcc.dg/tree-ssa/pr69666.c: Add -std=gnu17.
	* gcc.dg/tree-ssa/pr70232.c: Add -std=gnu17.
	* gcc.dg/ubsan/pr79757-1.c: Add -Wno-old-style-definition.
	* gcc.dg/ubsan/pr79757-2.c: Add -Wno-old-style-definition.
	* gcc.dg/ubsan/pr79757-3.c: Add -Wno-old-style-definition.
	* gcc.dg/ubsan/pr81223.c: Add -std=gnu17.
	* gcc.dg/uninit-10-O0.c: Add -Wno-old-style-definition.
	* gcc.dg/uninit-10.c: Add -Wno-old-style-definition.
	* gcc.dg/uninit-32.c: Add -std=gnu17.
	* gcc.dg/uninit-41.c: Add -std=gnu17.
	* gcc.dg/uninit-A-O0.c: Add -Wno-old-style-definition.
	* gcc.dg/uninit-A.c: Add -Wno-old-style-definition.
	* gcc.dg/unused-1.c: Add -Wno-old-style-definition.
	* gcc.dg/vect/bb-slp-pr114249.c: Add -std=gnu17.
	* gcc.dg/vect/bb-slp-pr97486.c: Add -std=gnu17.
	* gcc.dg/vect/bb-slp-subgroups-1.c: Add -std=gnu17.
	* gcc.dg/vect/bb-slp-subgroups-2.c: Add -std=gnu17.
	* gcc.dg/vect/bb-slp-subgroups-3.c: Add -std=gnu17.
	* gcc.dg/vect/vect-early-break_111-pr113731.c: Add -std=gnu17.
	* gcc.dg/vect/vect-early-break_122-pr114239.c: Add -std=gnu17.
	* gcc.dg/vect/vect-multi-peel-gaps.c: Add -std=gnu17.
	* gcc.dg/vla-stexp-2.c: Add -std=gnu17.
	* gcc.dg/warn-1.c: Add -Wno-old-style-definition.
	* gcc.dg/winline-10.c: Add -Wno-old-style-definition.
	* gcc.dg/wtr-label-1.c: Add -Wno-old-style-definition.
	* gcc.dg/wtr-switch-1.c: Add -Wno-old-style-definition.
	* gcc.target/i386/excess-precision-3.c: Add
	-Wno-old-style-definition.
	* gcc.target/i386/fma4-256-nmsubXX.c: Add -std=gnu17.
	* gcc.target/i386/fma4-nmsubXX.c: Add -std=gnu17.
	* gcc.target/i386/nop-mcount.c: Add -Wno-old-style-definition.
	* gcc.target/i386/pr102627.c: Add -std=gnu17.
	* gcc.target/i386/pr106994.c: Add -std=gnu17.
	* gcc.target/i386/pr68349.c: Add -std=gnu17.
	* gcc.target/i386/pr97313.c: Add -std=gnu17.
	* gcc.target/i386/pr99454.c: Add -std=gnu17.
	* gcc.target/i386/record-mcount.c: Add -Wno-old-style-definition.

libffi/
	* testsuite/libffi.call/va_struct2.c (test_fn): Cast n to void.
	* testsuite/libffi.call/va_struct3.c (test_fn): Likewise.
	Backported from <https://github.com/libffi/libffi/pull/861>.
2024-10-16 16:48:24 +00:00
H.J. Lu
92456a4e56 libffi: Sync with libffi 3.4.2
Merged commit: f9ea41683444ebe11cfa45b05223899764df28fb
2021-10-20 05:35:52 -07:00
Jakub Jelinek
041f741770 libffi: Fix up x86_64 classify_argument
As the following testcase shows, libffi didn't handle properly
classify_arguments of structures at byte offsets not divisible by
UNITS_PER_WORD.  The following patch adjusts it to match what
config/i386/ classify_argument does for that and also ports the
PR38781 fix there (the second chunk).

This has been committed to upstream libffi already:
5651bea284

2021-06-16  Jakub Jelinek  <jakub@redhat.com>

	* src/x86/ffi64.c (classify_argument): For FFI_TYPE_STRUCT set words
	to number of words needed for type->size + byte_offset bytes rather
	than just type->size bytes.  Compute pos before the loop and check
	total size of the structure.
	* testsuite/libffi.call/nested_struct12.c: New test.
2021-06-16 10:45:27 +02:00
John David Anglin
bda9c2451e re PR libffi/65441 (FAIL: libffi.call/float2.c -W -Wall -Wno-psabi (test for excess errors))
PR libffi/65441
	* testsuite/lib/libffi.exp: Load target-supports-dg.exp.
	* testsuite/libffi.call/float2.c: Don't run on hppa*-*-hpux*.

From-SVN: r229400
2015-10-27 00:39:32 +00:00
Richard Henderson
36035d7967 Merge with upstream libffi 3ac1610aa33c887ea9b14935208943925714a33e
Includes build fixes for Solaris and Cygwin.

From-SVN: r219860
2015-01-19 13:14:59 -08:00
Richard Henderson
b1760f7f91 Merge libffi to upstream commit c82cc159426d8d4402375fa1ae3f045b9cf82e16
From-SVN: r219477
2015-01-12 08:19:59 -08:00
Alan Modra
3521ba8b2e PowerPC64 ELFv2 support
PowerPC64 ELFv2 support
	* src/powerpc/ffitarget.h: Import from upstream.
	* src/powerpc/ffi.c: Likewise.
	* src/powerpc/linux64.S: Likewise.
	* src/powerpc/linux64_closure.S: Likewise.
	* doc/libffi.texi: Likewise.
	* testsuite/libffi.call/cls_double_va.c: Likewise.
	* testsuite/libffi.call/cls_longdouble_va.c: Likewise.

From-SVN: r204917
2013-11-18 01:05:08 +10:30
Dominique d'Humieres
1e1ba2d795 Fix several libffi testsuite failures on 64-bit SPARC and PowerPC (PR libffi/56033)
PR libffi/56033
	* testsuite/libffi.call/cls_struct_va1.c (test_fn): Cast resp to
	ffi_arg *.
	* testsuite/libffi.call/cls_uint_va.c (cls_ret_T_fn): Likewise.
	* testsuite/libffi.call/va_1.c (main): Change res to ffi_arg.
	* testsuite/libffi.call/va_struct1.c (main): Likewise.

Co-Authored-By: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>

From-SVN: r199194
2013-05-22 11:47:52 +00:00
Thorsten Glaser
7b045477e2 re PR libffi/56000 (FAIL: libffi.call/cls_uchar_va.c -O0 -W -Wall output pattern test)
2013-01-07  Thorsten Glaser <tg@mirbsd.org>

	PR middle-end/56000
	* testsuite/libffi.call/cls_uchar_va.c,
	testsuite/libffi.call/cls_ushort_va.c,
	testsuite/libffi.call/va_1.c: Testsuite fixes.

From-SVN: r195277
2013-01-17 19:24:08 +01:00
Anthony Green
b4b575ce78 libffi merge
From-SVN: r194722
2012-12-26 16:28:02 +00:00
Anthony Green
34fa7690ac Merge upstream libffi
From-SVN: r184897
2012-03-04 21:11:09 +00:00
Kai Tietz
893f430128 prep_cif.c (ffi_prep_cif): Allow for X86_WIN32 also FFI_THISCALL.
* src/prep_cif.c (ffi_prep_cif): Allow for X86_WIN32
        also FFI_THISCALL.
        * src/x86/ffi.c (ffi_closure_THISCALL): Add prototype.
        (FFI_INIT_TRAMPOLINE_THISCALL): New trampoline code.
        (ffi_prep_closure_loc): Add FFI_THISCALL support.
        * src/x86/ffitarget.h (FFI_TRAMPOLINE_SIZE): Adjust size.
        * src/x86/win32.S (ffi_closure_THISCALL): New closure code
        for thiscall-calling convention.
        * testsuite/libffi.call/closure_thiscall.c: New test.

From-SVN: r184021
2012-02-08 22:35:19 +01:00
Kai Tietz
9b850dd969 ffi.c (ffi_call_win32): Add new argument to prototype for specify calling-convention.
* src/libffi/src/x86/ffi.c (ffi_call_win32): Add new
        argument to prototype for specify calling-convention.
        (ffi_call): Add support for stdcall/thiscall convention.
        (ffi_prep_args): Likewise.
        (ffi_raw_call): Likewise.
        * src/x86/ffitarget.h (ffi_abi): Add FFI_THISCALL and
        FFI_FASTCALL.
        * src/x86/win32.S (_ffi_call_win32): Add support for
        fastcall/thiscall calling-convention calls.
        * testsuite/libffi.call/fastthis1_win32.c: New test.
        * testsuite/libffi.call/fastthis2_win32.c: New test.
        * testsuite/libffi.call/fastthis3_win32.c: New test.
        * testsuite/libffi.call/strlen2_win32.c: New test.
        * testsuite/libffi.call/many2_win32.c: New test.
        * testsuite/libffi.call/struct1_win32.c: New test.
        * testsuite/libffi.call/struct2_win32.c: New test.

From-SVN: r183676
2012-01-29 14:29:53 +01:00
Rainer Orth
902233e09c cls_double_va.c: Move PR number to comment.
* testsuite/libffi.call/cls_double_va.c: Move PR number to comment.
	* testsuite/libffi.call/cls_longdouble_va.c: Likewise.

From-SVN: r175632
2011-06-29 12:47:56 +00:00
Rainer Orth
2ac88e57d7 re PR libffi/46660 (cls_double_va.c, cls_longdouble_va.c FAIL on IRIX 6.5)
PR libffi/46660
	* testsuite/libffi.call/cls_double_va.c: xfail dg-output on
	mips-sgi-irix6*.
	* testsuite/libffi.call/cls_longdouble_va.c: Likewise.

From-SVN: r175618
2011-06-29 07:31:05 +00:00
Rainer Orth
652de9ffb6 huge_struct.c (test_large_fn): Use PRIu8, PRId8 instead of %hhu, %hhd.
* testsuite/libffi.call/huge_struct.c (test_large_fn): Use PRIu8,
	PRId8 instead of %hhu, %hhd.
	* testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRId8,
	PRIu8): Define.
	[__sgi__] (PRId8, PRIu8): Define.

From-SVN: r175032
2011-06-14 15:54:22 +00:00
Rainer Orth
1bbb474148 re PR libffi/46661 (32-bit cls_pointer.c, cls_pointer_stack.c FAIL on IRIX 6.5)
PR libffi/46661
	* testsuite/libffi.call/cls_pointer.c (main): Cast void * to
	uintptr_t first.
	* testsuite/libffi.call/cls_pointer_stack.c (main): Likewise.

From-SVN: r169963
2011-02-09 10:01:07 +00:00
Rainer Orth
ce9315a9f5 ffitest.h [__sgi] (PRId64, PRIu64): Define.
* testsuite/libffi.call/ffitest.h [__sgi] (PRId64, PRIu64): Define.
	(PRIuPTR): Define.

From-SVN: r167332
2010-12-01 14:00:01 +00:00
Rainer Orth
ed2a97eb0d libffi-dg.exp: Rename ...
* testsuite/lib/libffi-dg.exp: Rename ...
	* testsuite/lib/libffi.exp: ... to this.
	* libffi/testsuite/libffi.call/call.exp: Don't load libffi-dg.exp.
	* libffi/testsuite/libffi.special/special.exp: Likewise.

From-SVN: r166768
2010-11-15 20:30:37 +00:00
Chung-Lin Tang
46e0720d66 Add ARM VFP ABI support to libffi.
From-SVN: r166032
2010-10-28 18:11:11 +00:00
Jakub Jelinek
731fc5f040 re PR libffi/45677 (Bad stack allocation for ffi function calls on x86-64)
PR libffi/45677
	* src/x86/ffi64.c (ffi_prep_cif_machdep): Ensure cif->bytes is
	a multiple of 8.
	* testsuite/libffi.call/many2.c: New test.

From-SVN: r164829
2010-10-01 09:31:49 +02:00
Andreas Tobler
87d072e09a configure.ac: Add target powerpc64-*-freebsd*.
2010-08-09  Andreas Tobler  <andreast@fgznet.ch>

        * configure.ac: Add target powerpc64-*-freebsd*.
        * configure: Regenerate.
        * testsuite/libffi.call/cls_align_longdouble_split.c: Pass
        -mlong-double-128 only to linux targets.
        * testsuite/libffi.call/cls_align_longdouble_split2.c: Likewise.
        * testsuite/libffi.call/cls_longdouble.c: Likewise.
        * testsuite/libffi.call/huge_struct.c: Likewise.

From-SVN: r163030
2010-08-09 15:00:32 +02:00
Jakub Jelinek
60d3aec487 tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not used count variable.
* tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
	used count variable.
	* genemit.c (gen_expand, gen_split): Avoid set but not used warnings
	when operandN variables aren't used in the body of the expander
	or splitter.
	* tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
	FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
	* tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
	* tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
	FOR_EACH_IMM_USE_ON_STMT): Likewise.
	* tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
	* tree.c (PROCESS_ARG): Likewise.
fortran/
	* parse.c (parse_derived, parse_enum): Avoid set but not used
	warning.
java/
	* expr.c (process_jvm_instruction): Avoid set but not used warning.
	* builtins.c (compareAndSwapInt_builtin, compareAndSwapLong_builtin,
	getVolatile_builtin): Likewise.
libjava/
	* exception.cc (_Jv_Throw): Avoid set but not used warning.
	* include/java-assert.h (JvAssertMessage, JvAssert): Use argument in
	sizeof to avoid set but not used warnings.
libjava/classpath/
	* native/jni/midi-alsa/gnu_javax_sound_midi_alsa_AlsaPortDevice.c
	(Java_gnu_javax_sound_midi_alsa_AlsaPortDevice_run_1receiver_1thread_1):
	Avoid set but not used warning.
libiberty/
	* regex.c (byte_re_match_2_internal): Avoid set but not used
	warning.
gcc/testsuite/
	* gcc.dg/builtin-choose-expr.c: Avoid set but not used warnings.
	* gcc.dg/trunc-1.c: Likewise.
	* gcc.dg/vla-9.c: Likewise.
	* gcc.dg/dfp/composite-type.c: Likewise.
libffi/
	* testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.

From-SVN: r158084
2010-04-07 22:27:37 +02:00
Rainer Orth
ec168029ae re PR libffi/40701 (Many libffi tests fail to compile on Tru64 UNIX)
PR libffi/40701
	* testsuite/libffi.call/ffitest.h [__alpha__ && __osf__] (PRIdLL,
	PRIuLL, PRId64, PRIu64, PRIuPTR): Define.
	* testsuite/libffi.call/cls_align_sint64.c: Add -Wno-format on
	alpha*-dec-osf*.
	* testsuite/libffi.call/cls_align_uint64.c: Likewise.
	* testsuite/libffi.call/cls_ulonglong.c: Likewise.
	* testsuite/libffi.call/return_ll1.c: Likewise.
	* testsuite/libffi.call/stret_medium2.c: Likewise.
	* testsuite/libffi.special/ffitestcxx.h (allocate_mmap): Cast
	MAP_FAILED to char *.

From-SVN: r155710
2010-01-07 20:35:33 +00:00
Anthony Green
bc472c0054 xfail tests for AVR32
From-SVN: r155551
2010-01-01 12:40:18 +00:00
Andreas Tobler
d7e9538ee5 Fixes for HPUX.
From-SVN: r155550
2010-01-01 12:36:07 +00:00
Anthony Green
1098bcf812 Update xfails.
From-SVN: r155548
2010-01-01 12:26:49 +00:00
Anthony Green
a761df3da4 Windows patch
From-SVN: r155540
2009-12-31 17:44:32 +00:00
Anthony Green
493278bea5 New test case.
From-SVN: r155538
2009-12-31 16:58:55 +00:00
John David Anglin
2516c7cd1e ffitest.h: Define PRIuPTR on PA HP-UX.
* testsuite/libffi.call/ffitest.h: Define PRIuPTR on PA HP-UX.

From-SVN: r155277
2009-12-15 23:55:56 +00:00
Eric Botcazou
2ea54b81da * testsuite/libffi.call/ffitest.h: Define PRIuPTR on Solaris < 10.
From-SVN: r155151
2009-12-11 10:00:12 +00:00
David Daney
6c6859a104 stret_medium.c: Remove xfail for mips*-*-*
2009-12-08  David Daney  <ddaney@caviumnetworks.com>

	* testsuite/libffi.call/stret_medium.c: Remove xfail for mips*-*-*
	* testsuite/libffi.call/cls_align_longdouble_split2.c: Same.
	* testsuite/libffi.call/stret_large.c: Same.
	* testsuite/libffi.call/cls_align_longdouble_split.c: Same.
	* testsuite/libffi.call/stret_large2.c: Same.
	* testsuite/libffi.call/stret_medium2.c: Same.

From-SVN: r155093
2009-12-08 22:59:02 +00:00
Uros Bizjak
6078f50a12 re PR libffi/41908 (closures fail for some structure arguments containing floats)
PR libffi/41908
	* src/x86/ffi64.c (classify_argument): Update from
	gcc/config/i386/i386.c.
	(ffi_closure_unix64_inner): Do not use the address of two consecutive
	SSE registers directly.
	* testsuite/libffi.call/cls_dbls_struct.c (main): Remove xfail
	for x86_64 linux targets.

From-SVN: r154988
2009-12-04 19:41:59 +01:00
Uros Bizjak
ddf6c18784 cls_longdouble_va.c (main): Fix format string.
* testsuite/libffi.call/cls_longdouble_va.c (main): Fix format string.
	Remove xfails for x86 linux targets.

From-SVN: r154946
2009-12-03 15:02:10 +01:00
Uros Bizjak
a27c404027 cls_longdouble_va.c (main): Fix format string.
* testsuite/libffi.call/cls_longdouble_va.c (main): Fix format string.

From-SVN: r154941
2009-12-03 11:35:31 +01:00
Andreas Tobler
2265f64613 re PR libffi/41908 (closures fail for some structure arguments containing floats)
2009-11-02  Andreas Tobler  <a.tobler@schweiz.org>

	PR libffi/41908
	* testsuite/libffi.call/testclosure.c: New test.

From-SVN: r153824
2009-11-02 22:18:17 +01:00
Andrew Haley
3bc462c29c cls_align_sint64.c, [...]: Fix printf format specifiers.
2009-06-16  Andrew Haley  <aph@redhat.com>

        * testsuite/libffi.call/cls_align_sint64.c,
        testsuite/libffi.call/cls_align_uint64.c,
        testsuite/libffi.call/cls_longdouble_va.c,
        testsuite/libffi.call/cls_ulonglong.c,
        testsuite/libffi.call/return_ll1.c,
        testsuite/libffi.call/stret_medium2.c: Fix printf format
        specifiers.
        * testsuite/libffi.call/ffitest.h,
        testsuite/libffi.special/ffitestcxx.h (PRIdLL, PRIuLL): Define.

From-SVN: r148521
2009-06-16 10:15:31 +00:00
Andrew Haley
081b044b49 err_bad_typedef.c: xfail everywhere.
2009-06-15  Andrew Haley  <aph@redhat.com>

	* testsuite/libffi.call/err_bad_typedef.c: xfail everywhere.
	* testsuite/libffi.call/err_bad_abi.c: Likewise.

From-SVN: r148499
2009-06-15 17:14:53 +00:00
Andrew Haley
062b827975 [multiple changes]
2009-06-12  Andrew Haley  <aph@redhat.com>

	* ChangeLog.libffi: testsuite/libffi.call/cls_align_sint64.c,
	testsuite/libffi.call/cls_align_uint64.c,
	testsuite/libffi.call/cls_ulonglong.c,
	testsuite/libffi.call/return_ll1.c,
	testsuite/libffi.call/stret_medium2.c: Fix printf format
	specifiers.
	testsuite/libffi.special/unwindtest.cc: include stdint.h.

2009-06-11  Timothy Wall  <twall@users.sf.net>

	* Makefile.am,
        configure.ac,
        include/ffi.h.in,
        include/ffi_common.h,
        src/closures.c,
        src/dlmalloc.c,
        src/x86/ffi.c,
        src/x86/ffitarget.h,
        src/x86/win64.S (new),
	README: Added win64 support (mingw or MSVC)
        * Makefile.in,
        include/Makefile.in,
        man/Makefile.in,
        testsuite/Makefile.in,
        configure,
        aclocal.m4: Regenerated
        * ltcf-c.sh: properly escape cygwin/w32 path
        * man/ffi_call.3: Clarify size requirements for return value.
        * src/x86/ffi64.c: Fix filename in comment.
        * src/x86/win32.S: Remove unused extern.

        * testsuite/libffi.call/closure_fn0.c,
        testsuite/libffi.call/closure_fn1.c,
        testsuite/libffi.call/closure_fn2.c,
        testsuite/libffi.call/closure_fn3.c,
        testsuite/libffi.call/closure_fn4.c,
        testsuite/libffi.call/closure_fn5.c,
        testsuite/libffi.call/closure_fn6.c,
	testsuite/libffi.call/closure_stdcall.c,
	testsuite/libffi.call/cls_12byte.c,
	testsuite/libffi.call/cls_16byte.c,
	testsuite/libffi.call/cls_18byte.c,
	testsuite/libffi.call/cls_19byte.c,
	testsuite/libffi.call/cls_1_1byte.c,
	testsuite/libffi.call/cls_20byte.c,
	testsuite/libffi.call/cls_20byte1.c,
	testsuite/libffi.call/cls_24byte.c,
	testsuite/libffi.call/cls_2byte.c,
	testsuite/libffi.call/cls_3_1byte.c,
	testsuite/libffi.call/cls_3byte1.c,
 	testsuite/libffi.call/cls_3byte2.c,
 	testsuite/libffi.call/cls_4_1byte.c,
 	testsuite/libffi.call/cls_4byte.c,
 	testsuite/libffi.call/cls_5_1_byte.c,
 	testsuite/libffi.call/cls_5byte.c,
 	testsuite/libffi.call/cls_64byte.c,
 	testsuite/libffi.call/cls_6_1_byte.c,
 	testsuite/libffi.call/cls_6byte.c,
 	testsuite/libffi.call/cls_7_1_byte.c,
 	testsuite/libffi.call/cls_7byte.c,
 	testsuite/libffi.call/cls_8byte.c,
 	testsuite/libffi.call/cls_9byte1.c,
 	testsuite/libffi.call/cls_9byte2.c,
 	testsuite/libffi.call/cls_align_double.c,
 	testsuite/libffi.call/cls_align_float.c,
 	testsuite/libffi.call/cls_align_longdouble.c,
 	testsuite/libffi.call/cls_align_longdouble_split.c,
 	testsuite/libffi.call/cls_align_longdouble_split2.c,
 	testsuite/libffi.call/cls_align_pointer.c,
 	testsuite/libffi.call/cls_align_sint16.c,
 	testsuite/libffi.call/cls_align_sint32.c,
 	testsuite/libffi.call/cls_align_sint64.c,
 	testsuite/libffi.call/cls_align_uint16.c,
 	testsuite/libffi.call/cls_align_uint32.c,
 	testsuite/libffi.call/cls_align_uint64.c,
 	testsuite/libffi.call/cls_dbls_struct.c,
 	testsuite/libffi.call/cls_double.c,
 	testsuite/libffi.call/cls_double_va.c,
 	testsuite/libffi.call/cls_float.c,
 	testsuite/libffi.call/cls_longdouble.c,
 	testsuite/libffi.call/cls_longdouble_va.c,
 	testsuite/libffi.call/cls_multi_schar.c,
 	testsuite/libffi.call/cls_multi_sshort.c,
 	testsuite/libffi.call/cls_multi_sshortchar.c,
 	testsuite/libffi.call/cls_multi_uchar.c,
 	testsuite/libffi.call/cls_multi_ushort.c,
 	testsuite/libffi.call/cls_multi_ushortchar.c,
 	testsuite/libffi.call/cls_pointer.c,
 	testsuite/libffi.call/cls_pointer_stack.c,
 	testsuite/libffi.call/cls_schar.c,
 	testsuite/libffi.call/cls_sint.c,
 	testsuite/libffi.call/cls_sshort.c,
 	testsuite/libffi.call/cls_uchar.c,
 	testsuite/libffi.call/cls_uint.c,
 	testsuite/libffi.call/cls_ulonglong.c,
 	testsuite/libffi.call/cls_ushort.c,
 	testsuite/libffi.call/err_bad_abi.c,
 	testsuite/libffi.call/err_bad_typedef.c,
 	testsuite/libffi.call/float2.c,
 	testsuite/libffi.call/huge_struct.c,
 	testsuite/libffi.call/nested_struct.c,
 	testsuite/libffi.call/nested_struct1.c,
 	testsuite/libffi.call/nested_struct10.c,
 	testsuite/libffi.call/nested_struct2.c,
 	testsuite/libffi.call/nested_struct3.c,
 	testsuite/libffi.call/nested_struct4.c,
 	testsuite/libffi.call/nested_struct5.c,
 	testsuite/libffi.call/nested_struct6.c,
 	testsuite/libffi.call/nested_struct7.c,
 	testsuite/libffi.call/nested_struct8.c,
 	testsuite/libffi.call/nested_struct9.c,
 	testsuite/libffi.call/problem1.c,
 	testsuite/libffi.call/return_ldl.c,
 	testsuite/libffi.call/return_ll1.c,
 	testsuite/libffi.call/stret_large.c,
 	testsuite/libffi.call/stret_large2.c,
 	testsuite/libffi.call/stret_medium.c,
 	testsuite/libffi.call/stret_medium2.c,
        testsuite/libffi.special/unwindtest.cc: use ffi_closure_alloc instead
        of checking for MMAP.  Use intptr_t instead of long casts.

2009-06-12  Andrew Haley  <aph@redhat.com>

	* Makefile.am: Remove info_TEXINFOS.

From-SVN: r148433
2009-06-12 15:57:58 +00:00
Kaz Kojima
f43def61ea cls_longdouble_va.c: Add xfail sh*-*-linux-*.
* testsuite/libffi.call/cls_longdouble_va.c: Add xfail sh*-*-linux-*.
	* testsuite/libffi.call/err_bad_abi.c: Add xfail sh*-*-*.
	* testsuite/libffi.call/err_bad_typedef.c: Likewise.

From-SVN: r148402
2009-06-11 23:20:49 +00:00
Andrew Haley
3b5b1a73fa [multiple changes]
2009-06-08  Andrew Haley  <aph@redhat.com>

	* testsuite/libffi.call/err_bad_abi.c: Add xfails.
	* testsuite/libffi.call/cls_longdouble_va.c: Add xfails.
	* testsuite/libffi.call/cls_dbls_struct.c: Add xfail x86_64-*-linux-*.
	* testsuite/libffi.call/err_bad_typedef.c: Add xfails.

	* testsuite/libffi.call/stret_medium2.c: Add __UNUSED__ to args.
	* testsuite/libffi.call/stret_medium.c: Likewise.
	* testsuite/libffi.call/stret_large2.c: Likewise.
	* testsuite/libffi.call/stret_large.c:  Likewise.

2008-12-26  Timothy Wall  <twall@users.sf.net>

        * testsuite/libffi.call/cls_longdouble.c,
        testsuite/libffi.call/cls_longdouble_va.c,
        testsuite/libffi.call/cls_align_longdouble.c,
        testsuite/libffi.call/cls_align_longdouble_split.c,
        testsuite/libffi.call/cls_align_longdouble_split2.c: mark expected
        failures on x86_64 cygwin/mingw.

2008-12-22  Timothy Wall  <twall@users.sf.net>

        * testsuite/libffi.call/closure_fn0.c,
        testsuite/libffi.call/closure_fn1.c,
        testsuite/libffi.call/closure_fn2.c,
        testsuite/libffi.call/closure_fn3.c,
        testsuite/libffi.call/closure_fn4.c,
        testsuite/libffi.call/closure_fn5.c,
        testsuite/libffi.call/closure_fn6.c,
        testsuite/libffi.call/closure_loc_fn0.c,
        testsuite/libffi.call/closure_stdcall.c,
        testsuite/libffi.call/cls_align_pointer.c,
        testsuite/libffi.call/cls_pointer.c,
        testsuite/libffi.call/cls_pointer_stack.c: use portable cast from
        pointer to integer (intptr_t).
        * testsuite/libffi.call/cls_longdouble.c: disable for win64.

2008-07-24  Anthony Green  <green@redhat.com>

        * testsuite/libffi.call/cls_dbls_struct.c,
        testsuite/libffi.call/cls_double_va.c,
        testsuite/libffi.call/cls_longdouble.c,
        testsuite/libffi.call/cls_longdouble_va.c,
        testsuite/libffi.call/cls_pointer.c,
        testsuite/libffi.call/cls_pointer_stack.c,
        testsuite/libffi.call/err_bad_abi.c: Clean up failures from
        compiler warnings.

2008-03-04  Anthony Green  <green@redhat.com>
            Blake Chaffin
            hos@tamanegi.org

        * testsuite/libffi.call/cls_align_longdouble_split2.c
          testsuite/libffi.call/cls_align_longdouble_split.c
          testsuite/libffi.call/cls_dbls_struct.c
          testsuite/libffi.call/cls_double_va.c
          testsuite/libffi.call/cls_longdouble.c
          testsuite/libffi.call/cls_longdouble_va.c
          testsuite/libffi.call/cls_pointer.c
          testsuite/libffi.call/cls_pointer_stack.c
          testsuite/libffi.call/err_bad_abi.c
          testsuite/libffi.call/err_bad_typedef.c
          testsuite/libffi.call/stret_large2.c
          testsuite/libffi.call/stret_large.c
          testsuite/libffi.call/stret_medium2.c
          testsuite/libffi.call/stret_medium.c: New tests from Apple.

From-SVN: r148285
2009-06-08 17:03:31 +00:00
Jakub Jelinek
748086b7b2 Licensing changes to GPLv3 resp. GPLv3 with GCC Runtime Exception.
From-SVN: r145841
2009-04-09 17:00:19 +02:00
H.J. Lu
7f92e24236 re PR libffi/34612 ([4.1/4.2] libffi doesn't work with -fomit-frame-pointer on ia32)
2008-01-30  H.J. Lu  <hongjiu.lu@intel.com>

	PR libffi/34612
	* src/x86/sysv.S (ffi_closure_SYSV): Pop 4 byte from stack when
	returning struct.

	* testsuite/libffi.call/call.exp: Add "-O2 -fomit-frame-pointer"
	tests.

From-SVN: r131964
2008-01-30 06:36:58 -08:00
Andreas Tobler
e84296c66c sysv.S: Load correct cr to compare if we have long double.
2007-11-17  Andreas Tobler  <a.tobler@schweiz.org>

	* src/powerpc/sysv.S: Load correct cr to compare if we have long double.
	* src/powerpc/linux64.S: Likewise.
	* src/powerpc/ffi.c: Add a comment to show which part goes into cr6.
	* testsuite/libffi.call/return_ldl.c: New test.

From-SVN: r130247
2007-11-17 00:24:53 +01:00
David Daney
787b0d199b * testsuite/libffi.call/return_sl.c: New test.
From-SVN: r127787
2007-08-24 19:32:02 +00:00
David Daney
dfbb3e3625 cls_multi_ushort.c, [...]: Remove xfail for mips64*-*-*.
* testsuite/libffi.call/cls_multi_ushort.c,
	testsuite/libffi.call/cls_align_uint16.c,
	testsuite/libffi.call/nested_struct1.c,
	testsuite/libffi.call/nested_struct3.c,
	testsuite/libffi.call/cls_7_1_byte.c,
	testsuite/libffi.call/nested_struct5.c,
	testsuite/libffi.call/cls_double.c,
	testsuite/libffi.call/nested_struct7.c,
	testsuite/libffi.call/cls_sint.c,
	testsuite/libffi.call/nested_struct9.c,
	testsuite/libffi.call/cls_20byte1.c,
	testsuite/libffi.call/cls_multi_sshortchar.c,
	testsuite/libffi.call/cls_align_sint64.c,
	testsuite/libffi.call/cls_3byte2.c,
	testsuite/libffi.call/cls_multi_schar.c,
	testsuite/libffi.call/cls_multi_uchar.c,
	testsuite/libffi.call/cls_19byte.c,
	testsuite/libffi.call/cls_9byte1.c,
	testsuite/libffi.call/cls_align_float.c,
	testsuite/libffi.call/closure_fn1.c,
	testsuite/libffi.call/problem1.c,
	testsuite/libffi.call/closure_fn3.c,
	testsuite/libffi.call/cls_sshort.c,
	testsuite/libffi.call/closure_fn5.c,
	testsuite/libffi.call/cls_align_double.c,
	testsuite/libffi.call/nested_struct.c,
	testsuite/libffi.call/cls_2byte.c,
	testsuite/libffi.call/nested_struct10.c,
	testsuite/libffi.call/cls_4byte.c,
	testsuite/libffi.call/cls_6byte.c,
	testsuite/libffi.call/cls_8byte.c,
	testsuite/libffi.call/cls_multi_sshort.c,
	testsuite/libffi.call/cls_align_sint16.c,
	testsuite/libffi.call/cls_align_uint32.c,
	testsuite/libffi.call/cls_20byte.c,
	testsuite/libffi.call/cls_float.c,
	testsuite/libffi.call/nested_struct2.c,
	testsuite/libffi.call/cls_5_1_byte.c,
	testsuite/libffi.call/nested_struct4.c,
	testsuite/libffi.call/cls_24byte.c,
	testsuite/libffi.call/nested_struct6.c,
	testsuite/libffi.call/cls_64byte.c,
	testsuite/libffi.call/nested_struct8.c,
	testsuite/libffi.call/cls_uint.c,
	testsuite/libffi.call/cls_multi_ushortchar.c,
	testsuite/libffi.call/cls_schar.c,
	testsuite/libffi.call/cls_uchar.c,
	testsuite/libffi.call/cls_align_uint64.c,
	testsuite/libffi.call/cls_ulonglong.c,
	testsuite/libffi.call/cls_align_longdouble.c,
	testsuite/libffi.call/cls_1_1byte.c,
	testsuite/libffi.call/cls_12byte.c,
	testsuite/libffi.call/cls_3_1byte.c,
	testsuite/libffi.call/cls_3byte1.c,
	testsuite/libffi.call/cls_4_1byte.c,
	testsuite/libffi.call/cls_6_1_byte.c,
	testsuite/libffi.call/cls_16byte.c,
	testsuite/libffi.call/cls_18byte.c,
	testsuite/libffi.call/closure_fn0.c,
	testsuite/libffi.call/cls_9byte2.c,
	testsuite/libffi.call/closure_fn2.c,
	testsuite/libffi.call/closure_fn4.c,
	testsuite/libffi.call/cls_ushort.c,
	testsuite/libffi.call/closure_fn6.c,
	testsuite/libffi.call/cls_5byte.c,
	testsuite/libffi.call/cls_align_pointer.c,
	testsuite/libffi.call/cls_7byte.c,
	testsuite/libffi.call/cls_align_sint32.c,
	testsuite/libffi.special/unwindtest_ffi_call.cc,
	testsuite/libffi.special/unwindtest.cc: Remove xfail for mips64*-*-*.

From-SVN: r127337
2007-08-10 15:38:23 +00:00
David Daney
d23869d452 ffitest.h (ffi_type_mylong): Remove definition.
* testsuite/libffi.call/ffitest.h (ffi_type_mylong): Remove definition.
	* testsuite/libffi.call/cls_align_uint16.c (main): Use correct type
	specifiers.
	* testsuite/libffi.call/nested_struct1.c (main): Ditto.
	* testsuite/libffi.call/cls_sint.c (main): Ditto.
	* testsuite/libffi.call/nested_struct9.c (main): Ditto.
	* testsuite/libffi.call/cls_20byte1.c (main): Ditto.
	* testsuite/libffi.call/cls_9byte1.c (main): Ditto.
	* testsuite/libffi.call/closure_fn1.c (main): Ditto.
	* testsuite/libffi.call/closure_fn3.c (main): Ditto.
	* testsuite/libffi.call/return_dbl2.c (main): Ditto.
	* testsuite/libffi.call/cls_sshort.c (main): Ditto.
	* testsuite/libffi.call/return_fl3.c (main): Ditto.
	* testsuite/libffi.call/closure_fn5.c (main): Ditto.
	* testsuite/libffi.call/nested_struct.c (main): Ditto.
	* testsuite/libffi.call/nested_struct10.c (main): Ditto.
	* testsuite/libffi.call/return_ll1.c (main): Ditto.
	* testsuite/libffi.call/cls_8byte.c (main): Ditto.
	* testsuite/libffi.call/cls_align_uint32.c (main): Ditto.
	* testsuite/libffi.call/cls_align_sint16.c (main): Ditto.
	* testsuite/libffi.call/cls_20byte.c (main): Ditto.
	* testsuite/libffi.call/nested_struct2.c (main): Ditto.
	* testsuite/libffi.call/cls_24byte.c (main): Ditto.
	* testsuite/libffi.call/nested_struct6.c (main): Ditto.
	* testsuite/libffi.call/cls_uint.c (main): Ditto.
	* testsuite/libffi.call/cls_12byte.c (main): Ditto.
	* testsuite/libffi.call/cls_16byte.c (main): Ditto.
	* testsuite/libffi.call/closure_fn0.c (main): Ditto.
	* testsuite/libffi.call/cls_9byte2.c (main): Ditto.
	* testsuite/libffi.call/closure_fn2.c (main): Ditto.
	* testsuite/libffi.call/return_dbl1.c (main): Ditto.
	* testsuite/libffi.call/closure_fn4.c (main): Ditto.
	* testsuite/libffi.call/closure_fn6.c (main): Ditto.
	* testsuite/libffi.call/cls_align_sint32.c (main): Ditto.

From-SVN: r127312
2007-08-09 02:02:37 +00:00
David Daney
58e11497f7 return_ul.c (main): Define return type as ffi_arg.
* testsuite/libffi.call/return_ul.c (main): Define return type as
	ffi_arg.  Use proper printf conversion specifier.

From-SVN: r127177
2007-08-03 03:17:13 +00:00
Andrew Haley
387cfbba39 re PR testsuite/32843 (libffi.call/return_sc.c)
2007-07-30  Andrew Haley  <aph@redhat.com>

        PR testsuite/32843
        * src/x86/ffi.c (ffi_prep_cif_machdep): in x86 case, add code for
        signed/unsigned int8/16.
        * src/x86/sysv.S (ffi_call_SYSV): Rewrite to:
        Use a jump table.
        Remove code to pop args from the stack after call.
        Special-case signed/unsigned int8/16.
        * testsuite/libffi.call/return_sc.c (main): Revert.

From-SVN: r127093
2007-07-31 15:05:52 +00:00
Richard Guenther
0ee0208ecc re PR testsuite/32843 (libffi.call/return_sc.c)
2007-07-26  Richard Guenther  <rguenther@suse.de>

	PR testsuite/32843
	* testsuite/libffi.call/return_sc.c (main): Verify call
	result as signed char, not ffi_arg.

From-SVN: r126950
2007-07-26 09:13:58 +00:00