Commit Graph

135483 Commits

Author SHA1 Message Date
Thomas Schwinge
4f929d9da1 intelmic-mkoffload: Deal with linker defaulting to 32-bit x86 mode.
... which explicitly has to be switched into 64-bit x86_64 mode.

	gcc/
	* config/i386/intelmic-mkoffload.c (compile_for_target): Always
	add "-m32" or "-m64" to argv_obstack.
	(generate_host_descr_file): Likewise, when invoking host_compiler.
	(main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
	ld.

From-SVN: r219345
2015-01-08 15:58:45 +01:00
Thomas Schwinge
53dd59bff5 liboffloadmic/plugin: Depend on libgomp being built.
[...]
    Making all in plugin
    make[6]: Entering directory `[...]/build-gcc-offload-x86_64-intelmicemul-linux-gnu/x86_64-intelmicemul-linux-gnu/32/liboffloadmic/plugin'
    [...]
    [...]/build-gcc-offload-x86_64-intelmicemul-linux-gnu/./gcc/xg++ -B[...]/build-gcc-offload-x86_64-intelmicemul-linux-gnu/./gcc/ -nostdinc++ -nostdinc++ -I[...]/build-gcc-offload-x86_64-intelmicemul-linux-gnu/x86_64-intelmicemul-linux-gnu/32/libstdc++-v3/include/x86_64-intelmicemul-linux-gnu -I[...]/build-gcc-offload-x86_64-intelmicemul-linux-gnu/x86_64-intelmicemul-linux-gnu/32/libstdc++-v3/include -I[...]/source-gcc/libstdc++-v3/libsupc++ -I[...]/source-gcc/libstdc++-v3/include/backward -I[...]/source-gcc/libstdc++-v3/testsuite/util -L[...]/build-gcc-offload-x86_64-intelmicemul-linux-gnu/x86_64-intelmicemul-linux-gnu/32/libstdc++-v3/src -L[...]/build-gcc-offload-x86_64-intelmicemul-linux-gnu/x86_64-intelmicemul-linux-gnu/32/libstdc++-v3/src/.libs -L[...]/build-gcc-offload-x86_64-intelmicemul-linux-gnu/x86_64-intelmicemul-linux-gnu/32/libstdc++-v3/libsupc++/.libs -B/x86_64-intelmicemul-linux-gnu/bin/ -B/x86_64-intelmicemul-linux-gnu/lib/ -isystem /x86_64-intelmicemul-linux-gnu/include -isystem /x86_64-intelmicemul-linux-gnu/sys-include  -m32 -L./../.libs -L./../../libgomp/.libs -loffloadmic_target -lcoi_device -lmyo-service -lgomp -rdynamic ../ofldbegin.o offload_target_main.o ../ofldend.o -o offload_target_main
    /usr/bin/ld: cannot find -lgomp
    collect2: error: ld returned 1 exit status

	* Makefile.def (dependencies) <all-target-liboffloadmic>: Depend on
	all-target-libgomp.
	* Makefile.in: Regenerate.

From-SVN: r219344
2015-01-08 15:46:22 +01:00
Jonathan Wakely
ea0b599a91 * include/bits/hashtable_policy.h: Use __bool_constant.
From-SVN: r219343
2015-01-08 13:27:30 +00:00
Oleg Endo
3b1406134b sh-mem.cc: Use constant as second operand when emitting tstsi_t insns.
gcc/
	* config/sh/sh-mem.cc: Use constant as second operand when emitting
	tstsi_t insns.

From-SVN: r219342
2015-01-08 11:28:22 +00:00
Oleg Endo
3aa8dfe360 re PR target/55212 ([SH] Switch to LRA)
gcc/
	PR target/55212
	* config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
	constant load if constant operand fits into I08.

From-SVN: r219341
2015-01-08 11:07:45 +00:00
Jakub Jelinek
bd84df1879 re PR sanitizer/64336 (Template functions are not instrumented at -O0 and -Og)
PR sanitizer/64336
	* tree.c (build2_stat): Fix up initialization of TREE_READONLY
	and TREE_THIS_VOLATILE for MEM_REFs.
	(build5_stat): Fix up initialization of TREE_READONLY and
	TREE_THIS_VOLATILE for TARGET_MEM_REFs.

From-SVN: r219339
2015-01-08 10:20:24 +01:00
Kaz Kojima
ae6b8666c9 re PR target/64533 ([SH] alloca generates unsafe code)
PR target/64533
* config/sh/sh.md (*addsi3_compact): Use u constraint instead
of r for the second alternative of the destination operand.

From-SVN: r219338
2015-01-08 09:05:06 +00:00
Segher Boessenkool
946695b779 re PR target/36557 (-m32 -mpowerpc64 produces better code than -m64 for a!=0)
PR target/36557
	* config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.

From-SVN: r219336
2015-01-08 04:46:41 +01:00
Sandra Loosemore
317991c964 invoke.texi ([-fvtable-verify]): Fix markup on option keywords.
2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* doc/invoke.texi ([-fvtable-verify]): Fix markup on option
	keywords.
	([-fivar-visibility], [-fvisibility]): Likewise.

From-SVN: r219335
2015-01-07 21:03:35 -05:00
David Malcolm
605f96ba2d Add new jit testcase accidentally omitted from r219320
From-SVN: r219334
2015-01-08 01:09:14 +00:00
David Malcolm
c211cd236c jit: Add checking for dereference of void *
gcc/jit/ChangeLog:
	* jit-recording.h (gcc::jit::recording::type::is_void): New
	virtual function.
	(gcc::jit::recording::memento_of_get_type::is_void): New
	function, overriding default implementation.
	* libgccjit.c (gcc_jit_rvalue_dereference): Verify that
	the underlying type is not "void".

gcc/testsuite/ChangeLog:
	* jit.dg/test-error-dereferencing-void-ptr.c: New test case.

From-SVN: r219333
2015-01-08 01:08:19 +00:00
GCC Administrator
5efe46fdc7 Daily bump.
From-SVN: r219330
2015-01-08 00:16:32 +00:00
Sandra Loosemore
429805d21f invoke.texi: Fix incorrect uses of @samp markup throughout the file where @code...
2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* doc/invoke.texi: Fix incorrect uses of @samp markup throughout
	the file where @code, @command, etc is more appropriate.

From-SVN: r219322
2015-01-07 15:45:34 -05:00
David Malcolm
18146f456f API extension: add GCC_JIT_UNARY_OP_ABS to enum gcc_jit_unary_op
gcc/jit/ChangeLog:
	* docs/topics/expressions.rst (Unary Operations): Add
	GCC_JIT_UNARY_OP_ABS.
	* jit-playback.c (gcc::jit::playback::context::new_unary_op):
	Likewise.
	* jit-recording.c (unary_op_strings): Likewise.
	* libgccjit.c (gcc_jit_context_new_unary_op): Update checking
	of "op" to reflect addition of GCC_JIT_UNARY_OP_ABS.
	* libgccjit.h (enum gcc_jit_unary_op): Add GCC_JIT_UNARY_OP_ABS.
	* docs/_build/texinfo/libgccjit.texi: Regenerate.

gcc/testsuite/ChangeLog:
	* jit.dg/test-expressions.c (make_tests_of_unary_ops): Add test of
	GCC_JIT_UNARY_OP_ABS.
	(verify_unary_ops): Likewise.

From-SVN: r219321
2015-01-07 20:40:46 +00:00
David Malcolm
f63c7f8524 Add test of handling arithmetic-overflow from JIT
gcc/testsuite/ChangeLog:
	* jit.dg/test-arith-overflow.c: New test case.
	* jit.dg/all-non-failing-tests.h: Add test-arith-overflow.c.
	* jit.dg/test-combination.c (create_code): Likewise.
	(verify_code): Likewise.
	* jit.dg/test-threads.c (testcases): Likewise.

From-SVN: r219320
2015-01-07 20:03:06 +00:00
David Malcolm
11af98ff71 Fix typo in jit-recording.h
gcc/jit/ChangeLog:
	* jit-recording.h (gcc::jit::recording::memento_of_get_type): Fix
	typo in comment.

From-SVN: r219319
2015-01-07 19:52:46 +00:00
David Malcolm
433d16df13 jit.exp: support C++ testcases
gcc/jit/ChangeLog:
	* TODO.rst (Test suite): Remove item about running C++ testcases.
	* docs/internals/index.rst (Working on the JIT library): Add
	"c++" to the enabled languages in the suggested "configure"
	invocation, and add a description of why this is necessary.
	* docs/_build/texinfo/libgccjit.texi: Regenerate.

gcc/testsuite/ChangeLog:
	* jit.dg/jit.exp: Load wrapper.exp with %{tool} set to "g++"
	rather than "jit".  Load g++.exp, and call g++_init.
	Run test-*.cc files within the testsuite and *.cc files within
	docs/examples.
	(jit-dg-test): Drop the addition of -fgnu89-inline to
	DEFAULT_CFLAGS in favor of adding it to additional_flags, only
	doing it when compiling C testcases (since g++ does not handle
	it).  Reset "orig_environment_saved" so that LD_LIBRARY_PATH
	is restored to the value after g++_init ran, rather than the
	value before g++_init ran.  Return a list of
	$comp_output $output_file, as dg-test assumes.

From-SVN: r219318
2015-01-07 19:19:10 +00:00
Jonathan Wakely
23608da4db Makefile.am: Compile del_ops.cc as C++14.
* libsupc++/Makefile.am: Compile del_ops.cc as C++14.
	* libsupc++/Makefile.in: Regenerate.

From-SVN: r219317
2015-01-07 17:08:11 +00:00
Chris Manghane
dd37378003 re PR go/61204 (gccgo: ICE in in fold_convert_loc [GoSmith])
PR go/61204
	* go-gcc.cc (Gcc_backend::temporary_variable): Don't initialize
	zero-sized variable.

From-SVN: r219316
2015-01-07 16:14:50 +00:00
David Malcolm
649a274903 jit.exp: add __func__ to help test-{combination|threads}.c
gcc/testsuite/ChangeLog:
	* jit.dg/harness.h (CHECK_NON_NULL): Add __func__ to output, to
	make it easier to figure out the origin of each test result when
	running test-combination.c and test-threads.c.
	(CHECK_VALUE): Likewise.
	(CHECK_DOUBLE_VALUE): Likewise.
	(CHECK_STRING_VALUE): Likewise.
	(CHECK_STRING_STARTS_WITH): Likewise.
	(CHECK_STRING_CONTAINS): Likewise.
	(CHECK): Likewise.
	(check_string_value): Likewise, add "funcname" param.
	(check_string_starts_with): Likewise.
	(check_string_contains): Likewise.

From-SVN: r219314
2015-01-07 16:03:36 +00:00
Ian Lance Taylor
ee756af88e compiler: Don't assign to embedded builtins in imported struct composite
literals.

Fixes https://github.com/golang/go/issues/6832.

From-SVN: r219313
2015-01-07 15:38:24 +00:00
David Malcolm
50bb6c8e11 jit.exp: Don't drop the extension from the testcase when naming executable
gcc/jit/ChangeLog:
	* docs/internals/index.rst: Update to reflect that built
	testcases are now test-foo.c.exe, rather than test-foo.exe.
	* docs/_build/texinfo/libgccjit.texi: Regenerate.

gcc/testsuite/ChangeLog:
	* jit.dg/jit.exp (jit-dg-test): Remove "rootname" call when
	generating name of built executable.

From-SVN: r219312
2015-01-07 15:35:19 +00:00
Arnaud Charlet
4ffafd8620 [multiple changes]
2015-01-07  Robert Dewar  <dewar@adacore.com>

	* sem_warn.adb (Check_One_Unit): Don't give unused entities
	warning for a package which is used as a generic parameter.

2015-01-07  Bob Duff  <duff@adacore.com>

	* usage.adb (Usage): Correct documentation of
	-gnatw.f switches.

2015-01-07  Robert Dewar  <dewar@adacore.com>

	* s-fileio.adb: Minor reformatting.

2015-01-07  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Instantiate_Object): If formal is an anonymous
	access to subprogram, replace its formals with new entities when
	building the object declaration, both if actual is present and
	when it is defaulted.

2015-01-07  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb (Analyze_Assignment): If left-hand side is a view
	conversion and type of expression has invariant, apply invariant
	check on expression.

2015-01-07  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Create_Constrained_Components): A call to
	Gather_Components may detect an error if an inherited discriminant
	that controls a variant is non-static.
	* sem_aggr.adb (Resolve_Record_Aggregate, Step 5): The call to
	Gather_Components may report an error if an inherited discriminant
	in a variant in non-static.
	* sem_util.adb (Gather_Components): If a non-static discriminant
	is inherited do not report error here, but let caller handle it.
	(Find_Actual): Small optimization.

From-SVN: r219297
2015-01-07 12:15:30 +01:00
Arnaud Charlet
91669e7ee5 [multiple changes]
2015-01-07  Bob Duff  <duff@adacore.com>

	* usage.adb (Usage): Document -gnatw.f switch.

2015-01-07  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb: Code clean up and minor reformatting.

2015-01-07  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb (Expand_N_Type_Conversion): Add guard for
	Raise_Accessibility_Error call.
	* s-valllu.ads (Scan_Raw_Long_Long_Unsigned): Add documentation
	on handling of invalid digits in based constants.
	* s-fatgen.ads: Minor reformatting.
	* sem_attr.adb (Analyze_Attribute, case Unrestricted_Access):
	Avoid noting bogus modification for Valid test.
	* snames.ads-tmpl (Name_Attr_Long_Float): New Name.
	* einfo.ads: Minor reformatting.
	* sem_warn.adb: Minor comment clarification.
	* sem_ch12.adb: Minor reformatting.

From-SVN: r219296
2015-01-07 12:13:15 +01:00
Arnaud Charlet
bdeea27b01 Minor reformatting.
From-SVN: r219295
2015-01-07 12:00:13 +01:00
Arnaud Charlet
10dfac72b1 [multiple changes]
2015-01-07  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch5.adb (Expand_Predicated_Loop): Handle properly loops
	over static predicates when the loop parameter specification
	carries a Reverse indicator.

2015-01-07  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Instantiate_Object): If formal has a default,
	actual is missing and formal has an anonymous access type, copy
	access definition in full so that tree for instance is properly
	formatted for ASIS use.

2015-01-07  Bob Duff  <duff@adacore.com>

	* sem_elab.adb (Check_Internal_Call_Continue): Give a warning
	for P'Access, where P is a subprogram in the same package as
	the P'Access, and the P'Access is evaluated at elaboration
	time, and occurs before the body of P. For example, "X : T :=
	P'Access;" would allow a subsequent call to X.all to be an
	access-before-elaboration error; hence the warning. This warning
	is enabled by the -gnatw.f switch.
	* opt.ads (Warn_On_Elab_Access): New flag for warning switch.
	* warnsw.adb (Set_Dot_Warning_Switch): Set Warn_On_Elab_Access.
	* gnat_ugn.texi: Document the new warning.

From-SVN: r219293
2015-01-07 11:26:56 +01:00
Johannes Kanig
ccfe725bc6 lib-xref-spark_specific.adb (Collect_SPARK_Xrefs): Skip unneeded cross ref files.
2015-01-07  Johannes Kanig  <kanig@adacore.com>

	* lib-xref-spark_specific.adb (Collect_SPARK_Xrefs): Skip unneeded
	cross ref files.

From-SVN: r219292
2015-01-07 11:24:46 +01:00
Arnaud Charlet
ed09416ff9 [multiple changes]
2015-01-07  Robert Dewar  <dewar@adacore.com>

	* s-taprop-linux.adb, clean.adb: Minor reformatting.

2015-01-07  Arnaud Charlet  <charlet@adacore.com>

	* s-tassta.adb: Relax some overzealous assertions.

2015-01-07  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analyze_Return_Type): An call that returns a limited
	view of a type is legal when context is a thunk generated for
	operation inherited from an interface.
	* exp_ch6.adb (Expand_Simple_Function_Return): If context is
	a thunk and return type is an incomplete type do not continue
	expansion; thunk will be fully elaborated when generating code.

2015-01-07  Doug Rupp  <rupp@adacore.com>

	* s-osinte-mingw.ads (LARGE_INTEGR): New subtype.
	(QueryPerformanceFrequency): New imported procedure.
	* s-taprop-mingw.adb (RT_Resolution): Call above and return
	resolution vice a hardcoded value.
	* s-taprop-solaris.adb (RT_Resolution): Call clock_getres and return
	resolution vice a hardcoded value.
	* s-linux-android.ads (clockid_t): New subtype.
	* s-osinte-aix.ads (clock_getres): New imported subprogram.
	* s-osinte-android.ads (clock_getres): Likewise.
	* s-osinte-freebsd.ads (clock_getres): Likewise.
	* s-osinte-solaris-posix.ads (clock_getres): Likewise.
	* s-osinte-darwin.ads (clock_getres): New subprogram.
	* s-osinte-darwin.adb (clock_getres): New subprogram.
	* thread.c (__gnat_clock_get_res) [__APPLE__]: New function.
	* s-taprop-posix.adb (RT_Resolution): Call clock_getres to
	calculate resolution vice hard coded value.

2015-01-07  Ed Schonberg  <schonberg@adacore.com>

	* exp_util.adb (Make_CW_Equivalent_Type): If root type is a
	limited view, use non-limited view when available to create
	equivalent record type.

2015-01-07  Vincent Celier  <celier@adacore.com>

	* gnatcmd.adb: Remove command Sync and any data and processing
	related to this command. Remove project processing for gnatstack.
	* prj-attr.adb: Remove package Synchonize and its attributes.

From-SVN: r219291
2015-01-07 11:22:51 +01:00
Arnaud Charlet
6a989c79d4 [multiple changes]
2015-01-07  Vincent Celier  <celier@adacore.com>

	* clean.adb: Minor error message change.

2015-01-07  Tristan Gingold  <gingold@adacore.com>

	PR ada/64349  
	* env.c (__gnat_environ): Adjust for darwin9/darwin10.

2015-01-07  Javier Miranda  <miranda@adacore.com>

	* sem_ch10.adb (Analyze_With_Clause): Compiling under -gnatq
	protect the frontend against never ending recursion caused by
	circularities in the sources.

From-SVN: r219290
2015-01-07 11:15:18 +01:00
Arnaud Charlet
1c85591cab [multiple changes]
2015-01-07  Robert Dewar  <dewar@adacore.com>

	* a-reatim.adb, make.adb, exp_pakd.adb, i-cpoint.adb, sem_ch8.adb,
	exp_ch3.adb: Minor reformatting.

2015-01-07  Doug Rupp  <rupp@adacore.com>

	* s-linux.ads (clockid_t): New subtype.
	* s-osinte-linux.ads (pragma Linker Options): Add -lrt.
	(clockid_t): New subtype.
	(clock_getres): Import system call.
	* s-taprop-linux.adb (System.OS_Constants): With and rename.
	(RT_Resolution): Remove
	hardcoded value and call clock_getres.
	* s-linux-sparc.ads, s-linux-mipsel.ads, s-linux-hppa.ads,
	s-linux-alpha.ads, s-linux-x32.ads (clockid_t): Add new subtype.

2015-01-07  Robert Dewar  <dewar@adacore.com>

	* sem_warn.adb (Check_One_Unit): Guard against context item
	with no Entity field.

From-SVN: r219289
2015-01-07 11:12:03 +01:00
Arnaud Charlet
b6e5a1ec2c [multiple changes]
2015-01-07  Vincent Celier  <celier@adacore.com>

	* clean.adb (Gnatclean): Warn that 'gnatclean -P' is obsolete.
	* make.adb (Initialize): Warn that 'gnatmake -P' is obsolete.

2015-01-07  Vincent Celier  <celier@adacore.com>

	* prj-conf.adb (Parse_Project_And_Apply_Config): Always finalize
	errors/warnings in the first parsing of the project files,
	to display the warnings when there is no errors.

2015-01-07  Tristan Gingold  <gingold@adacore.com>

	* i-cpoint.adb (Copy_Terminated_Array): Nicely handle null target.

2015-01-07  Doug Rupp  <rupp@adacore.com>

	* s-taprop-vxworks.adb (Stop_All_Tasks): Pass return
	value from Int_Lock as parameter to Int_Unlock.
	* s-osinte-vxworks.ads (Int_Unlock): Add parameter.
	* s-vxwext.ads (Int_Unlock): Likewise.
	* s-vxwext-kernel.adb (intUnlock, Int_Unlock): Likewise.
	* s-vxwext-kernel.ads (Int_Unlock): Likewise.
	* s-vxwext-rtp.adb (Int_Unlock): Likewise.
	* s-vxwext-rtp.ads (Int_Unlock): Likewise.

2015-01-07  Pierre-Marie de Rodat  <derodat@adacore.com>

	* exp_pakd.adb: Add a comment in exp_pakd.adb to explain why we
	keep ___XP suffixes

From-SVN: r219288
2015-01-07 11:01:36 +01:00
Arnaud Charlet
c3831524bc [multiple changes]
2015-01-07  Tristan Gingold  <gingold@adacore.com>

	* i-cpoint.adb (Copy_Terminated_Array): Use Copy_Array to
	handle overlap.

2015-01-07  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch3.adb (Analyze_Full_Type_Declaration): Do not
	automatically set No_Strict_Aliasing on access types.
	* fe.h (No_Strict_Aliasing_CP): Declare.
	* gcc-interface/trans.c (gigi): Force flag_strict_aliasing to 0 if
	No_Strict_Aliasing_CP is set.

2015-01-07  Johannes Kanig  <kanig@adacore.com>

	* sem_ch8.adb (Analyze_Subprogram_Renaming) do
	not build function wrapper in gnatprove mode when the package
	is externally axiomatized.

2015-01-07  Jose Ruiz  <ruiz@adacore.com>

	* a-reatim.adb (Time_Of): Reduce the number of spurious overflows in
	intermediate computations when the parameters have different signs.

2015-01-07  Javier Miranda  <miranda@adacore.com>

	* exp_ch3.adb (Build_Init_Procedure): For derived types,
	improve the code which takes care of identifying and moving to
	the beginning of the init-proc the call to the init-proc of the
	parent type.

From-SVN: r219287
2015-01-07 10:52:50 +01:00
Olivier Hainque
1a9ee22281 trans.c (gnat_to_gnu, [...]): Elaborate the expression as part of the same stmt group as the actions.
2015-01-07  Olivier Hainque  <hainque@adacore.com>
                                             
	* gcc-interface/trans.c (gnat_to_gnu, <N_Expression_With_Action>):      
	Elaborate the expression as part of the same stmt group as the actions.

From-SVN: r219286
2015-01-07 10:49:24 +01:00
Arnaud Charlet
7d1286f61e [multiple changes]
2015-01-07  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb: Minor error message change.

2015-01-07  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb (Analyze_Pragma, case Preelaborable_Initialization):
	Following AI05-028, the pragam applies legally to any composite type.

From-SVN: r219285
2015-01-07 10:31:05 +01:00
Arnaud Charlet
95e0ceefa5 [multiple changes]
2015-01-07  Arnaud Charlet  <charlet@adacore.com>

	* s-osinte-vxworks.adb, s-osinte-vxworks.ads
	(sigwait, sigwaitinfo): Removed, not needed after all on any
	VxWorks configurations.

2015-01-07  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb, freeze.adb, exp_disp.adb: Minor reformatting.

From-SVN: r219284
2015-01-07 09:55:01 +01:00
Arnaud Charlet
2ea3ba25c0 [multiple changes]
2015-01-07  Javier Miranda  <miranda@adacore.com>

	* exp_disp.adb (Expand_Interface_Conversion): Adding missing
	generation of accessibility check.

2015-01-07  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Derived_Type_Declaration): In the case of an
	illegal completion from a class- wide type, set etype of the
	derived type properly to prevent cascaded errors.

From-SVN: r219283
2015-01-07 09:52:35 +01:00
Robert Dewar
18dae8141c prj.ads, [...]: Minor reformatting.
2015-01-07  Robert Dewar  <dewar@adacore.com>

	* prj.ads, i-cpoint.adb, freeze.adb, ghost.adb, prj-err.adb: Minor
	reformatting.

2015-01-07  Robert Dewar  <dewar@adacore.com>

	* restrict.adb (Check_Restriction_No_Use_Of_Attribute):
	New procedure.
	(OK_No_Use_Of_Entity_Name): New function.
	(Set_Restriction_No_Use_Of_Entity): New procedure.
	* restrict.ads (Check_Restriction_No_Use_Of_Attribute):
	New procedure.
	(OK_No_Use_Of_Entity_Name): New function.
	(Set_Restriction_No_Use_Of_Entity): New procedure.
	* sem_ch8.adb (Find_Direct_Name): Add check for violation of
	No_Use_Of_Entity.
	* sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings):
	Add processing for new restriction No_Use_Of_Entity.

From-SVN: r219282
2015-01-07 09:49:42 +01:00
Eric Botcazou
7806a9ed84 freeze.adb (Freeze_Array_Type): Apply same handling to Is_Atomic component type as to Has_Atomic_Components type.
2015-01-07  Eric Botcazou  <ebotcazou@adacore.com>

	* freeze.adb (Freeze_Array_Type): Apply same handling to Is_Atomic
	component type as to Has_Atomic_Components type.  Remove useless
	test on Is_Aliased component type.

From-SVN: r219281
2015-01-07 09:45:17 +01:00
Hristian Kirtchev
8636f52f7b 2015-01-07 Hristian Kirtchev <kirtchev@adacore.com>
* alloc.ads Alphabetize several declarations. Add constants
	Ignored_Ghost_Units_Initial and Ignored_Ghost_Units_Increment.
	* atree.adb Add with and use clauses for Opt.
	(Allocate_Initialize_Node): Mark a node as ignored Ghost
	if it is created in an ignored Ghost region.
	(Ekind_In): New variant.
	(Is_Ignored_Ghost_Node): New routine.
	(Set_Is_Ignored_Ghost_Node): New routine.
	* atree.adb Aplhabetize several subprograms declarations. Flag
	Spare0 is now known as Is_Ignored_Ghost_Node.
	(Ekind_In): New variant.
	(Is_Ignored_Ghost_Node): New routine.
	(Set_Is_Ignored_Ghost_Node): New routine.
	* einfo.adb: Flag 279 is now known as Contains_Ignored_Ghost_Code.
	(Contains_Ignored_Ghost_Code): New routine.
	(Set_Contains_Ignored_Ghost_Code): New routine.
	(Set_Is_Checked_Ghost_Entity, Set_Is_Ignored_Ghost_Entity):
	It is now possible to set this property on an unanalyzed entity.
	(Write_Entity_Flags): Output the status of flag
	Contains_Ignored_Ghost_Code.
	* einfo.ads New attribute Contains_Ignored_Ghost_Code along with
	usage in nodes.
	(Contains_Ignored_Ghost_Code): New routine
	along with pragma Inline.
	(Set_Contains_Ignored_Ghost_Code): New routine along with pragma Inline.
	* exp_ch3.adb Add with and use clauses for Ghost.
	(Freeze_Type): Capture/restore the value of Ghost_Mode on entry/exit.
	Set the Ghost_Mode in effect.
	(Restore_Globals): New routine.
	* exp_ch7.adb (Process_Declarations): Do not process a context
	that invoves an ignored Ghost entity.
	* exp_dbug.adb (Qualify_All_Entity_Names): Skip an ignored Ghost
	construct that has been rewritten as a null statement.
	* exp_disp.adb Add with and use clauses for Ghost.
	(Make_DT): Capture/restore the value of Ghost_Mode on entry/exit. Set
	the Ghost_Mode in effect.
	(Restore_Globals): New routine.
	* exp_util.adb (Requires_Cleanup_Actions): An ignored Ghost entity
	does not require any clean up. Add two missing cases that deal
	with block statements.
	* freeze.adb Add with and use clauses for Ghost.
	(Freeze_Entity): Capture/restore the value of Ghost_Mode on entry/exit.
	Set the Ghost_Mode in effect.
	(Restore_Globals): New routine.
	* frontend.adb Add with and use clauses for Ghost. Remove any
	ignored Ghost code from all units that qualify.
	* ghost.adb New unit.
	* ghost.ads New unit.
	* gnat1drv.adb Add with clause for Ghost. Initialize and lock
	the table in package Ghost.
	* lib.ads: Alphabetize several subprogram declarations.
	* lib-xref.adb (Output_References): Do not generate reference
	information for ignored Ghost entities.
	* opt.ads Add new type Ghost_Mode_Type and new global variable
	Ghost_Mode.
	* rtsfind.adb (Load_RTU): Provide a clean environment when
	loading a runtime unit.
	* sem.adb (Analyze): Capture/restore the value of Ghost_Mode on
	entry/exit as the node may set a different mode.
	(Do_Analyze):
	Capture/restore the value of Ghost_Mode on entry/exit as the
	unit may be withed from a unit with a different Ghost mode.
	* sem_ch3.adb Add with and use clauses for Ghost.
	(Analyze_Full_Type_Declaration, Analyze_Incomplete_Type_Decl,
	Analyze_Number_Declaration, Analyze_Private_Extension_Declaration,
	Analyze_Subtype_Declaration): Set the Ghost_Mode in effect. Mark
	the entity as Ghost when there is a Ghost_Mode in effect.
	(Array_Type_Declaration): The implicit base type inherits the
	"ghostness" from the array type.
	(Derive_Subprogram): The
	alias inherits the "ghostness" from the parent subprogram.
	(Make_Implicit_Base): The implicit base type inherits the
	"ghostness" from the parent type.
	* sem_ch5.adb Add with and use clauses for Ghost.
	(Analyze_Assignment): Set the Ghost_Mode in effect.
	* sem_ch6.adb Add with and use clauses for Ghost.
	(Analyze_Abstract_Subprogram_Declaration, Analyze_Procedure_Call,
	Analyze_Subprogram_Body_Helper, Analyze_Subprogram_Declaration):
	Set the Ghost_Mode in effect. Mark the entity as Ghost when
	there is a Ghost_Mode in effect.
	* sem_ch7.adb Add with and use clauses for Ghost.
	(Analyze_Package_Body_Helper, Analyze_Package_Declaration,
	Analyze_Private_Type_Declaration): Set the Ghost_Mode in
	effect. Mark the entity as Ghost when there is a Ghost_Mode
	in effect.
	* sem_ch8.adb Add with and use clauses for Ghost.
	(Analyze_Exception_Renaming, Analyze_Generic_Renaming,
	Analyze_Object_Renaming, Analyze_Package_Renaming,
	Analyze_Subprogram_Renaming): Set the Ghost_Mode in effect. Mark
	the entity as Ghost when there is a Ghost_Mode in effect.
	(Find_Type): Check the Ghost context of a type.
	* sem_ch11.adb Add with and use clauses for Ghost.
	(Analyze_Exception_Declaration): Set the Ghost_Mode in
	effect. Mark the entity as Ghost when there is a Ghost_Mode
	in effect.
	* sem_ch12.adb Add with and use clauses for Ghost.
	(Analyze_Generic_Package_Declaration,
	Analyze_Generic_Subprogram_Declaration): Set the Ghost_Mode in effect.
	Mark the entity as Ghost when there is a Ghost_Mode in effect.
	* sem_prag.adb Add with and use clauses for Ghost.
	(Analyze_Pragma): Ghost-related checks are triggered when there
	is a Ghost mode in effect.
	(Create_Abstract_State): Mark the
	entity as Ghost when there is a Ghost_Mode in effect.
	* sem_res.adb Add with and use clauses for Ghost.
	(Check_Ghost_Context): Removed.
	* sem_util.adb (Check_Ghost_Completion): Removed.
	(Check_Ghost_Derivation): Removed.
	(Incomplete_Or_Partial_View):
	Add a guard in case the entity has not been analyzed yet
	and does carry a scope.
	(Is_Declaration): New routine.
	(Is_Ghost_Entity): Removed.
	(Is_Ghost_Statement_Or_Pragma):
	Removed.
	(Is_Subject_To_Ghost): Removed.
	(Set_Is_Ghost_Entity):
	Removed.
	(Within_Ghost_Scope): Removed.
	* sem_util.adb (Check_Ghost_Completion): Removed.
	(Check_Ghost_Derivation): Removed.
	(Is_Declaration): New routine.
	(Is_Ghost_Entity): Removed.
	(Is_Ghost_Statement_Or_Pragma): Removed.
	(Is_Subject_To_Ghost): Removed.
	(Set_Is_Ghost_Entity): Removed.
	(Within_Ghost_Scope): Removed.
	* sinfo.ads Add a section on Ghost mode.
	* treepr.adb (Print_Header_Flag): New routine.
	(Print_Node_Header): Factor out code. Output flag
	Is_Ignored_Ghost_Node.
	* gcc-interface/Make-lang.in: Add dependency for unit Ghost.

From-SVN: r219280
2015-01-07 09:41:47 +01:00
Marek Polacek
4a9a42abc4 re PR c/64440 (-Wdiv-by-zero false negative on const variables)
PR c/64440
	* c-common.c (c_fully_fold_internal): Warn for division and modulo
	if orig_op1 isn't INTEGER_CST, op1 is INTEGER_CST and is zero.

	* gcc.dg/pr64440.c: New test.
	* c-c++-common/pr56607.c: Don't limit dg-warnings to C++.

From-SVN: r219279
2015-01-07 08:21:50 +00:00
Marek Polacek
2cc901dcb2 re PR c/64417 ([SH] FAIL: gcc.c-torture/compile/pr28865.c -O0 (test for excess errors))
PR c/64417
c/
	* c-typeck.c (process_init_element): Disallow initialization of
	a flexible array member with a string constant if the structure
	is in an array.
testsuite/
	* gcc.c-torture/compile/pr28865.c: Add dg-errors.
	* gcc.dg/pr64417.c: New test.

From-SVN: r219278
2015-01-07 08:19:48 +00:00
Sandra Loosemore
0e905f0f46 invoke.texi (RS/6000 and PowerPC Options): Tidy formatting of -mrecip= documentation.
2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
	of -mrecip= documentation.

From-SVN: r219277
2015-01-06 20:28:04 -05:00
GCC Administrator
93c5c540f9 Daily bump.
From-SVN: r219276
2015-01-07 00:16:58 +00:00
Ian Lance Taylor
80e3412f4f compiler: Add explicit sign to exported complex constants without imaginary component.
Fixes issue 31.

From-SVN: r219273
2015-01-07 00:15:46 +00:00
Ian Lance Taylor
7d7d64c1ae libgo: Add sources for go, cgo, and gofmt commands.
The new commands are not yet built.  That will be done
separately.

Also include a few changes to go/build to support them.

From-SVN: r219272
2015-01-06 23:26:02 +00:00
Jason Merrill
efcdb22fe3 parser.c (cp_parser_nested_name_specifier_opt): Diagnose invalid template-ids.
* parser.c (cp_parser_nested_name_specifier_opt): Diagnose invalid
	template-ids.

From-SVN: r219269
2015-01-06 15:44:59 -05:00
Jason Merrill
c6a38536f2 re PR c++/64455 (A constexpr variable template can't be used with enable_if)
PR c++/64455
	* pt.c (type_dependent_expression_p): Handle variable templates.
	* constexpr.c (potential_constant_expression_1): Use it.

From-SVN: r219268
2015-01-06 15:44:51 -05:00
Jason Merrill
b433d944ab re PR c++/64487 (internal compiler error: in fold_offsetof_1, at c-family/c-common.c:9857)
PR c++/64487
	* semantics.c (finish_offsetof): Handle templates here.
	* parser.c (cp_parser_builtin_offsetof): Not here.

From-SVN: r219267
2015-01-06 15:44:46 -05:00
Jason Merrill
47867b4f65 re PR c++/64496 (ICE with NSDMI and lambda)
PR c++/64496
	* semantics.c (process_outer_var_ref): Diagnose lambda in local
	class NSDMI.

From-SVN: r219266
2015-01-06 15:44:39 -05:00
Ville Voutilainen
864822bd88 re PR c++/64489 (A simple struct wrapping a const int is not trivially copyable)
PR c++/64489
	* class.c (check_field_decls): Make copy assignment operators
	complex only in c++98 mode.

From-SVN: r219265
2015-01-06 15:44:32 -05:00