aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-opts.c
diff options
context:
space:
mode:
authorDiego Novillo <dnovillo@gcc.gnu.org>2009-10-03 17:10:11 -0400
committerDiego Novillo <dnovillo@gcc.gnu.org>2009-10-03 17:10:11 -0400
commitd7f09764d7bc66b9997c811c22e11efc87b44792 (patch)
tree3a9882bd235e5026410e5397a5e46a97ece50b48 /gcc/c-opts.c
parentb06e51a0c9852e7fb7c6f589b46f6906ce48febd (diff)
downloadgcc-d7f09764d7bc66b9997c811c22e11efc87b44792.zip
gcc-d7f09764d7bc66b9997c811c22e11efc87b44792.tar.gz
gcc-d7f09764d7bc66b9997c811c22e11efc87b44792.tar.bz2
Merge lto branch into trunk.
From-SVN: r152434
Diffstat (limited to 'gcc/c-opts.c')
-rw-r--r--gcc/c-opts.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/gcc/c-opts.c b/gcc/c-opts.c
index e026fd9..6c2f5a5 100644
--- a/gcc/c-opts.c
+++ b/gcc/c-opts.c
@@ -1033,6 +1033,29 @@ c_common_post_options (const char **pfilename)
C_COMMON_OVERRIDE_OPTIONS;
#endif
+ if (flag_lto || flag_whopr)
+ {
+#ifdef ENABLE_LTO
+ flag_generate_lto = 1;
+
+ /* When generating IL, do not operate in whole-program mode.
+ Otherwise, symbols will be privatized too early, causing link
+ errors later. */
+ flag_whole_program = 0;
+
+ /* FIXME lto. Disable var-tracking until debug information
+ is properly handled in free_lang_data. */
+ flag_var_tracking = 0;
+#else
+ error ("LTO support has not been enabled in this configuration");
+#endif
+ }
+
+ /* Reconcile -flto and -fwhopr. Set additional flags as appropriate and
+ check option consistency. */
+ if (flag_lto && flag_whopr)
+ error ("-flto and -fwhopr are mutually exclusive");
+
/* Excess precision other than "fast" requires front-end
support. */
if (c_dialect_cxx ())