summaryrefslogtreecommitdiff
path: root/gcc/c-family/c-pragma.c
diff options
context:
space:
mode:
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2016-11-23 08:08:47 +0000
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2016-11-23 08:08:47 +0000
commit0d65cc6c6ef215b50ebd5301fec4294cb077c7c8 (patch)
treead134efbf24d7e4a890b64a180a763b6ff99b23b /gcc/c-family/c-pragma.c
parentb2aa1313204348df27492fa2e22df7a4b1b260de (diff)
downloadgcc-0d65cc6c6ef215b50ebd5301fec4294cb077c7c8.tar.gz
PR target/78451
* c-pragma.c (handle_pragma_target): Don't replace current_target_pragma, but chainon the new args to the current one. * gcc.target/i386/pr78451.c: New test. * gcc.target/i386/pr69255-1.c: Use #pragma GCC push_options and #pragma GCC pop_options around the first #pragma GCC target. * gcc.target/i386/pr69255-2.c: Likewise. * gcc.target/i386/pr69255-3.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@242740 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/c-family/c-pragma.c')
-rw-r--r--gcc/c-family/c-pragma.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/c-family/c-pragma.c b/gcc/c-family/c-pragma.c
index 58ef5c9c80b..2ecacb8d57b 100644
--- a/gcc/c-family/c-pragma.c
+++ b/gcc/c-family/c-pragma.c
@@ -893,7 +893,7 @@ handle_pragma_target(cpp_reader *ARG_UNUSED(dummy))
args = nreverse (args);
if (targetm.target_option.pragma_parse (args, NULL_TREE))
- current_target_pragma = args;
+ current_target_pragma = chainon (current_target_pragma, args);
}
}