aboutsummaryrefslogtreecommitdiff
path: root/gcc/passes.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/passes.c')
-rw-r--r--gcc/passes.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/passes.c b/gcc/passes.c
index 2f625c5..e8a9322 100644
--- a/gcc/passes.c
+++ b/gcc/passes.c
@@ -454,6 +454,8 @@ rest_of_handle_final (void)
output_function_exception_table ();
#endif
+ user_defined_section_attribute = false;
+
if (! quiet_flag)
fflush (asm_out_file);
@@ -1857,7 +1859,9 @@ rest_of_compilation (void)
sections of the .o file does not work well with exception handling.
Don't call it if there are exceptions. */
- if (optimize > 0 && flag_reorder_blocks_and_partition && !flag_exceptions)
+ if (flag_reorder_blocks_and_partition
+ && !DECL_ONE_ONLY (current_function_decl)
+ && !user_defined_section_attribute)
rest_of_handle_partition_blocks ();
if (optimize > 0 && (flag_regmove || flag_expensive_optimizations))