https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70192
--- Comment #9 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> --- Author: hjl Date: Thu Mar 17 15:11:35 2016 New Revision: 234295 URL: https://gcc.gnu.org/viewcvs?rev=234295&root=gcc&view=rev Log: Properly set flag_pie and flag_pic We can't set flag_pie to the default when flag_pic == 0, which may be set by -fno-pic or -fno-PIC, since the default value of flag_pie is non-zero when GCC is configured with --enable-default-pie. We need to initialize flag_pic to -1 so that we can tell if -fpic, -fPIC, -fno-pic or -fno-PIC is used. Since Darwin defaults to PIC (__PIC__ == 2) and the PIC setting can't be changed, skip tests of default __PIC__ and __PIE__ setting for *-*-darwin* targets. gcc/ PR driver/70192 * opts.c (finish_options): Don't set flag_pie to the default if -fpic, -fPIC, -fno-pic or -fno-PIC is used. Set flag_pic to 0 if it is -1. gcc/testsuite/ PR driver/70192 * gcc.dg/pic-1.c: New test. * gcc.dg/pic-2.c: Likewise. * gcc.dg/pic-3.c: Likewise. * gcc.dg/pic-4.c: Likewise. * gcc.dg/pie-1.c: Likewise. * gcc.dg/pie-2.c: Likewise. * gcc.dg/pie-3.c: Likewise. * gcc.dg/pie-4.c: Likewise. * gcc.dg/pie-5.c: Likewise. * gcc.dg/pie-6.c: Likewise. Added: trunk/gcc/testsuite/gcc.dg/pic-1.c trunk/gcc/testsuite/gcc.dg/pic-2.c trunk/gcc/testsuite/gcc.dg/pic-3.c trunk/gcc/testsuite/gcc.dg/pic-4.c trunk/gcc/testsuite/gcc.dg/pie-1.c trunk/gcc/testsuite/gcc.dg/pie-2.c trunk/gcc/testsuite/gcc.dg/pie-3.c trunk/gcc/testsuite/gcc.dg/pie-4.c trunk/gcc/testsuite/gcc.dg/pie-5.c trunk/gcc/testsuite/gcc.dg/pie-6.c Modified: trunk/gcc/ChangeLog trunk/gcc/common.opt trunk/gcc/opts.c trunk/gcc/testsuite/ChangeLog