summaryrefslogtreecommitdiffstats
path: root/contrib/gcc/expr.c
Commit message (Collapse)AuthorAgeFilesLines
* MFC r260311, r260831:pfg2014-01-261-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gcc: Add support for Apple's Block extension Block objects [1] are a C-level syntactic and runtime feature. They are similar to standard C functions, but in addition to executable code they may also contain variable bindings to automatic (stack) or managed (heap) memory. A block can therefore maintain a set of state (data) that it can use to impact behavior when executed. This port is based on Apple's GCC 5646 with some bugfixes from Apple GCC 5666.3. It has some small differences with the support in clang, which remains the recommended compiler. Perhaps the most notable difference is that in GCC __block is not actually a keyword, but a macro. There may be workaround for this issue in the future. Other issues can be consulted in the clang documentation [2] For better compatiblity with Apple's GCC and llvm-gcc, some related fixes and features from Apple have been included. Support for the non-standard nested functions in GCC is now off by default. No effort was made to update the ObjC support since FreeBSD doesn't carry ObjC in the base system but some of the code crept in and was more difficult to remove than to adjust. References: [1] https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Blocks/Articles/00_Introduction.html [2] http://clang.llvm.org/compatibility.html#block-variable-initialization Obtained from: Apple GCC 4.2
* MFC r258428, r258445pfg2013-12-181-69/+76
| | | | | | | | | | | | | | | | | | | | | | | | | gcc: another round of merges from the gcc pre-43 branch. Bring The following revisions from the gcc43 branch[1]: 118360, 118361, 118363, 118576, 119820, 123906, 125246, and 125721. They all have in common that the were merged long ago into Apple's gcc and should help improve the general quality of the compiler and make it easier to bring new features from Apple's gcc42. For details please review the additions to the files: gcc/ChangeLog.gcc43 gcc/cp/ChangeLog.gcc43 (new, adds previous revisions) Fix crosscompilation (r258445 by andreast) Reference: [1] http://gcc.gnu.org/viewcvs/gcc/trunk/?pathrev=126700 Obtained from: gcc pre4.3 (GPLv2) branch MFC after: 3 weeks
* Bring in a subset of gcc fixes that were back ported topfg2012-05-181-8/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the GCC 4.1 branch and are available under GPLv2. 2007-11-07 Eric Botcazou <ebotcazou@libertysurf.fr> PR rtl-optimization/33822 * rtl.h (REG_OFFSET): Fix comment. * var-tracking.c (INT_MEM_OFFSET): New macro. (var_mem_set): Use it. (var_mem_delete_and_set): Likewise. (var_mem_delete): Likewise. (vt_get_decl_and_offset): Likewise. (offset_valid_for_tracked_p): New predicate. (count_uses): Do not track locations with invalid offsets. (add_uses): Likewise. (add_stores): Likewise. http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=129972 2007-11-16 Richard Guenther <rguenther@suse.de> PR middle-end/34030 * fold-const.c (fold_binary): Use correct types for folding 1 << X & Y to Y >> X & 1. http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=130242 2008-01-14 Eric Botcazou <ebotcazou@adacore.com> PR rtl-optimization/31944 * cse.c (remove_pseudo_from_table): New function. (merge_equiv_classes): Use above function to remove pseudo-registers. (invalidate): Likewise http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=131524 2008-01-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> Backport: 2007-11-07 Kenneth Zadeck <zadeck@naturalbridge.com> PR middle-end/33826 * ipa-pure-const (static_execute): Added code to keep recursive functions from being marked as pure or const. * ipa-utils (searchc): Fixed comment. http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=131807 2008-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> Backport: 2007-08-02 Nathan Froyd <froydnj@codesourcery.com> PR middle-end/25445 * varasm.c (default_binds_local_p_1): Consult flag_whole_program if we are compiling with -fPIC. http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=132061 2008-02-04 Richard Guenther <rguenther@suse.de> PR middle-end/33631 * expr.c (count_type_elements): Give for unions instead of guessing. http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=132101 2008-02-14 Alan Modra <amodra@bigpond.net.au> PR target/34393 * config/rs6000/rs6000.md (restore_stack_block): Force operands[1] to a reg. http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=132309 2008-03-25 Richard Guenther <rguenther@suse.de> Backport from mainline: 2008-02-12 Richard Guenther <rguenther@suse.de> PR middle-end/35163 * fold-const.c (fold_widened_comparison): Use get_unwidened in value-preserving mode. Disallow final truncation. http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=133509 2008-11-30 Eric Botcazou <ebotcazou@adacore.com> PR target/38287 * config/sparc/sparc.md (divsi3 expander): Remove constraints. (divsi3_sp32): Add new alternative with 'K' for operand #2. (cmp_sdiv_cc_set): Factor common string. (udivsi3_sp32): Add new alternative with 'K' for operand #2. Add TARGET_V9 case. (cmp_udiv_cc_set): Factor common string. http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=142298 Reviewed by: mm Approved by: jhb (mentor) MFC after: 1 week
* Upgrade of base gcc and libstdc++ to the last GPLv2-licensed revisionmm2011-03-291-12/+61
| | | | | | | | | | | | | | | | | | | (rev. 127959 of gcc-4_2-branch). Resolved GCC bugs: c++: 17763, 29365, 30535, 30917, 31337, 31941, 32108, 32112, 32346, 32898, 32992 debug: 32610, 32914 libstdc++: 33084, 33128 middle-end: 32563 rtl-optimization: 33148 tree-optimization: 25413, 32723 target: 32218 Tested by: pointyhat (miwi) Obtained from: gcc (gcc-4_2-branch up to rev. 127959) PR: gnu/153298, gnu/153959, gnu/154385 MFC after: 1 month
* GCC 4.2.0 release.kan2007-05-191-4218/+3742
|
* Gcc 3.4.4 release.kan2005-06-031-1/+6
|
* Gcc 3.4.2 20040728.kan2004-07-281-2500/+1148
|
* Gcc 3.3.3 20031106.kan2003-11-071-0/+9
|
* Gcc 3.3.1-release.kan2003-08-221-11/+63
|
* Gcc 3.3.1-pre as of 2003-07-11.kan2003-07-111-736/+1304
|
* Gcc 3.2.2-release.kan2003-02-101-13/+3
|
* Gcc 3.2.1 release virgin vendor import. (19-Nov-2002)obrien2002-12-041-4/+7
|
* Gcc 3.2.1-prerelease from the FSF anoncvs repo gcc-3_2-branch on October 9th ↵kan2002-10-101-47/+79
| | | | 2002 20:15 EST.
* Gcc 3.2.1-prerelease from the FSF anoncvs repo gcc-3_2-branch on 1-Sep-2002 ↵kan2002-09-011-2/+1
| | | | 00:00:01 EDT.
* Gcc 3.1.0 pre-release from the FSF anoncvs repo on 9-May-2002 15:57:15 EDT.obrien2002-05-091-103/+266
|
* Enlist the FreeBSD-CURRENT users as testers of what is to become Gcc 3.1.0.obrien2002-02-011-4491/+3128
| | | | These bits are taken from the FSF anoncvs repo on 1-Feb-2002 08:20 PST.
* Import the setjump/longjump exception handling fixes from GCC 2.95.3.test3obrien2001-03-241-52/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | that were removed from GCC 2.95.3.test4 and the subsequent release due to problems on HP-UX. However, they work just fine on all the BSD's. W/o these patches the following program segmentation faults if compiled with -O2 (but not -Os or -O or -O0): #include <stdio.h> class A { public: A() { printf("c'tor A\n"); } ~A(){ printf("d'tor A\n"); } }; class foo : public A { public: foo() { printf("C'tor foo\n"); throw 8; } ~foo() { printf("D'tor foo\n"); } }; int main(){ try { foo fii; } catch (int){ printf("catch ...\n"); } return 0; }
* Virgin import of the GCC 2.95.3 compilersobrien2001-03-191-88/+52
|
* Enlist the FreeBSD-CURRENT users as testers of GCC 2.95.3 Release Candidate #3obrien2001-02-171-1/+9
|
* Enlist the FreeBSD-CURRENT users as testers of GCC 2.95.3 Release Candidate #1obrien2001-01-031-70/+169
|
* Virgin import of the GCC 2.95.1 compilersobrien1999-10-161-349/+726
|
* Virgin import of gcc from EGCS 1.1.2obrien1999-08-261-2698/+3310
|
* Import of 2.7.2.1 into vendor branchpeter1996-09-181-1/+1
|
* Import of unmodified (but trimmed) gcc-2.7.2. The bigger parts of thepeter1996-09-181-0/+10747
non-i386, non-unix, and generatable files have been trimmed, but can easily be added in later if needed. gcc-2.7.2.1 will follow shortly, it's a very small delta to this and it's handy to have both available for reference for such little cost. The freebsd-specific changes will then be committed, and once the dust has settled, the bmakefiles will be committed to use this code.
OpenPOWER on IntegriCloud