mirror of git://gcc.gnu.org/git/gcc.git
re PR preprocessor/56824 (pragma GCC diagnostic push/pop fail with GCC diagnostic ignored "-Waggregate-return")
PR preprocessor/56824 * line-map.c (get_combined_adhoc_loc, linemap_get_expansion_line, linemap_get_expansion_filename, linemap_location_in_system_header_p, linemap_location_from_macro_expansion_p, linemap_macro_loc_to_spelling_point, linemap_macro_loc_to_def_point, linemap_macro_loc_to_exp_point, linemap_expand_location): Fix formatting. (linemap_compare_locations): Look through adhoc locations for both l0 and l1. * gcc.dg/pr56824.c: New test. From-SVN: r207606
This commit is contained in:
parent
177bc204a2
commit
acf601aefd
|
|
@ -1,3 +1,8 @@
|
||||||
|
2014-02-07 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR preprocessor/56824
|
||||||
|
* gcc.dg/pr56824.c: New test.
|
||||||
|
|
||||||
2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||||||
|
|
||||||
* gcc.dg/gcc-have-sync-compare-and-swap.c: Align the 16 byte
|
* gcc.dg/gcc-have-sync-compare-and-swap.c: Align the 16 byte
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
/* PR preprocessor/56824 */
|
||||||
|
/* { dg-do compile } */
|
||||||
|
/* { dg-options "-Waggregate-return" } */
|
||||||
|
|
||||||
|
struct S { int i; };
|
||||||
|
struct S foo (void);
|
||||||
|
|
||||||
|
#pragma GCC diagnostic push
|
||||||
|
#pragma GCC diagnostic ignored "-Waggregate-return"
|
||||||
|
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
foo ();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma GCC diagnostic pop
|
||||||
|
|
@ -1,3 +1,15 @@
|
||||||
|
2014-02-07 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR preprocessor/56824
|
||||||
|
* line-map.c (get_combined_adhoc_loc, linemap_get_expansion_line,
|
||||||
|
linemap_get_expansion_filename, linemap_location_in_system_header_p,
|
||||||
|
linemap_location_from_macro_expansion_p,
|
||||||
|
linemap_macro_loc_to_spelling_point, linemap_macro_loc_to_def_point,
|
||||||
|
linemap_macro_loc_to_exp_point, linemap_expand_location): Fix
|
||||||
|
formatting.
|
||||||
|
(linemap_compare_locations): Look through adhoc locations for both
|
||||||
|
l0 and l1.
|
||||||
|
|
||||||
2014-01-23 Dodji Seketeli <dodji@redhat.com>
|
2014-01-23 Dodji Seketeli <dodji@redhat.com>
|
||||||
|
|
||||||
PR PR preprocessor/58580
|
PR PR preprocessor/58580
|
||||||
|
|
|
||||||
|
|
@ -106,8 +106,8 @@ get_combined_adhoc_loc (struct line_maps *set,
|
||||||
linemap_assert (data);
|
linemap_assert (data);
|
||||||
|
|
||||||
if (IS_ADHOC_LOC (locus))
|
if (IS_ADHOC_LOC (locus))
|
||||||
locus =
|
locus
|
||||||
set->location_adhoc_data_map.data[locus & MAX_SOURCE_LOCATION].locus;
|
= set->location_adhoc_data_map.data[locus & MAX_SOURCE_LOCATION].locus;
|
||||||
if (locus == 0 && data == NULL)
|
if (locus == 0 && data == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
lb.locus = locus;
|
lb.locus = locus;
|
||||||
|
|
@ -141,8 +141,8 @@ get_combined_adhoc_loc (struct line_maps *set,
|
||||||
}
|
}
|
||||||
*slot = set->location_adhoc_data_map.data
|
*slot = set->location_adhoc_data_map.data
|
||||||
+ set->location_adhoc_data_map.curr_loc;
|
+ set->location_adhoc_data_map.curr_loc;
|
||||||
set->location_adhoc_data_map.data[
|
set->location_adhoc_data_map.data[set->location_adhoc_data_map.curr_loc++]
|
||||||
set->location_adhoc_data_map.curr_loc++] = lb;
|
= lb;
|
||||||
}
|
}
|
||||||
return ((*slot) - set->location_adhoc_data_map.data) | 0x80000000;
|
return ((*slot) - set->location_adhoc_data_map.data) | 0x80000000;
|
||||||
}
|
}
|
||||||
|
|
@ -833,8 +833,8 @@ linemap_get_expansion_line (struct line_maps *set,
|
||||||
const struct line_map *map = NULL;
|
const struct line_map *map = NULL;
|
||||||
|
|
||||||
if (IS_ADHOC_LOC (location))
|
if (IS_ADHOC_LOC (location))
|
||||||
location = set->location_adhoc_data_map.data[
|
location = set->location_adhoc_data_map.data[location
|
||||||
location & MAX_SOURCE_LOCATION].locus;
|
& MAX_SOURCE_LOCATION].locus;
|
||||||
|
|
||||||
if (location < RESERVED_LOCATION_COUNT)
|
if (location < RESERVED_LOCATION_COUNT)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
@ -861,8 +861,8 @@ linemap_get_expansion_filename (struct line_maps *set,
|
||||||
const struct line_map *map = NULL;
|
const struct line_map *map = NULL;
|
||||||
|
|
||||||
if (IS_ADHOC_LOC (location))
|
if (IS_ADHOC_LOC (location))
|
||||||
location = set->location_adhoc_data_map.data[
|
location = set->location_adhoc_data_map.data[location
|
||||||
location & MAX_SOURCE_LOCATION].locus;
|
& MAX_SOURCE_LOCATION].locus;
|
||||||
|
|
||||||
if (location < RESERVED_LOCATION_COUNT)
|
if (location < RESERVED_LOCATION_COUNT)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
@ -899,8 +899,8 @@ linemap_location_in_system_header_p (struct line_maps *set,
|
||||||
const struct line_map *map = NULL;
|
const struct line_map *map = NULL;
|
||||||
|
|
||||||
if (IS_ADHOC_LOC (location))
|
if (IS_ADHOC_LOC (location))
|
||||||
location = set->location_adhoc_data_map.data[
|
location = set->location_adhoc_data_map.data[location
|
||||||
location & MAX_SOURCE_LOCATION].locus;
|
& MAX_SOURCE_LOCATION].locus;
|
||||||
|
|
||||||
if (location < RESERVED_LOCATION_COUNT)
|
if (location < RESERVED_LOCATION_COUNT)
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -942,8 +942,8 @@ linemap_location_from_macro_expansion_p (struct line_maps *set,
|
||||||
source_location location)
|
source_location location)
|
||||||
{
|
{
|
||||||
if (IS_ADHOC_LOC (location))
|
if (IS_ADHOC_LOC (location))
|
||||||
location = set->location_adhoc_data_map.data[
|
location = set->location_adhoc_data_map.data[location
|
||||||
location & MAX_SOURCE_LOCATION].locus;
|
& MAX_SOURCE_LOCATION].locus;
|
||||||
|
|
||||||
linemap_assert (location <= MAX_SOURCE_LOCATION
|
linemap_assert (location <= MAX_SOURCE_LOCATION
|
||||||
&& (set->highest_location
|
&& (set->highest_location
|
||||||
|
|
@ -1024,6 +1024,11 @@ linemap_compare_locations (struct line_maps *set,
|
||||||
bool pre_virtual_p, post_virtual_p;
|
bool pre_virtual_p, post_virtual_p;
|
||||||
source_location l0 = pre, l1 = post;
|
source_location l0 = pre, l1 = post;
|
||||||
|
|
||||||
|
if (IS_ADHOC_LOC (l0))
|
||||||
|
l0 = set->location_adhoc_data_map.data[l0 & MAX_SOURCE_LOCATION].locus;
|
||||||
|
if (IS_ADHOC_LOC (l1))
|
||||||
|
l1 = set->location_adhoc_data_map.data[l1 & MAX_SOURCE_LOCATION].locus;
|
||||||
|
|
||||||
if (l0 == l1)
|
if (l0 == l1)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
|
@ -1086,8 +1091,8 @@ linemap_macro_loc_to_spelling_point (struct line_maps *set,
|
||||||
struct line_map *map;
|
struct line_map *map;
|
||||||
|
|
||||||
if (IS_ADHOC_LOC (location))
|
if (IS_ADHOC_LOC (location))
|
||||||
location = set->location_adhoc_data_map.data[
|
location = set->location_adhoc_data_map.data[location
|
||||||
location & MAX_SOURCE_LOCATION].locus;
|
& MAX_SOURCE_LOCATION].locus;
|
||||||
|
|
||||||
linemap_assert (set && location >= RESERVED_LOCATION_COUNT);
|
linemap_assert (set && location >= RESERVED_LOCATION_COUNT);
|
||||||
|
|
||||||
|
|
@ -1124,8 +1129,8 @@ linemap_macro_loc_to_def_point (struct line_maps *set,
|
||||||
struct line_map *map;
|
struct line_map *map;
|
||||||
|
|
||||||
if (IS_ADHOC_LOC (location))
|
if (IS_ADHOC_LOC (location))
|
||||||
location = set->location_adhoc_data_map.data[
|
location = set->location_adhoc_data_map.data[location
|
||||||
location & MAX_SOURCE_LOCATION].locus;
|
& MAX_SOURCE_LOCATION].locus;
|
||||||
|
|
||||||
linemap_assert (set && location >= RESERVED_LOCATION_COUNT);
|
linemap_assert (set && location >= RESERVED_LOCATION_COUNT);
|
||||||
|
|
||||||
|
|
@ -1166,8 +1171,8 @@ linemap_macro_loc_to_exp_point (struct line_maps *set,
|
||||||
struct line_map *map;
|
struct line_map *map;
|
||||||
|
|
||||||
if (IS_ADHOC_LOC (location))
|
if (IS_ADHOC_LOC (location))
|
||||||
location = set->location_adhoc_data_map.data[
|
location = set->location_adhoc_data_map.data[location
|
||||||
location & MAX_SOURCE_LOCATION].locus;
|
& MAX_SOURCE_LOCATION].locus;
|
||||||
|
|
||||||
linemap_assert (set && location >= RESERVED_LOCATION_COUNT);
|
linemap_assert (set && location >= RESERVED_LOCATION_COUNT);
|
||||||
|
|
||||||
|
|
@ -1374,8 +1379,8 @@ linemap_expand_location (struct line_maps *set,
|
||||||
if (IS_ADHOC_LOC (loc))
|
if (IS_ADHOC_LOC (loc))
|
||||||
{
|
{
|
||||||
loc = set->location_adhoc_data_map.data[loc & MAX_SOURCE_LOCATION].locus;
|
loc = set->location_adhoc_data_map.data[loc & MAX_SOURCE_LOCATION].locus;
|
||||||
xloc.data = set->location_adhoc_data_map.data[
|
xloc.data
|
||||||
loc & MAX_SOURCE_LOCATION].data;
|
= set->location_adhoc_data_map.data[loc & MAX_SOURCE_LOCATION].data;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (loc < RESERVED_LOCATION_COUNT)
|
if (loc < RESERVED_LOCATION_COUNT)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue