PR preprocessor/83173: New test
2018-11-27 Mike Gulick <mgulick@mathworks.com> PR preprocessor/83173 * gcc.dg/plugin/location-overflow-test-pr83173.c: New test. * gcc.dg/plugin/location-overflow-test-pr83173.h: Header for pr83173.c. * gcc.dg/plugin/location-overflow-test-pr83173-1.h: Header for pr83173.c. * gcc.dg/plugin/location-overflow-test-pr83173-2.h: Header for pr83173.c. * gcc.dg/plugin/location_overflow_plugin.c: Use PLUGIN_PRAGMAS instead of PLUGIN_START_UNIT. * gcc.dg/plugin/plugin.exp: Enable new test. From-SVN: r266518
This commit is contained in:
parent
862ec76377
commit
4d8da4df6b
7 changed files with 51 additions and 6 deletions
|
@ -1,3 +1,17 @@
|
|||
2018-11-27 Mike Gulick <mgulick@mathworks.com>
|
||||
|
||||
PR preprocessor/83173
|
||||
* gcc.dg/plugin/location-overflow-test-pr83173.c: New test.
|
||||
* gcc.dg/plugin/location-overflow-test-pr83173.h: Header for
|
||||
pr83173.c.
|
||||
* gcc.dg/plugin/location-overflow-test-pr83173-1.h: Header for
|
||||
pr83173.c.
|
||||
* gcc.dg/plugin/location-overflow-test-pr83173-2.h: Header for
|
||||
pr83173.c.
|
||||
* gcc.dg/plugin/location_overflow_plugin.c: Use PLUGIN_PRAGMAS
|
||||
instead of PLUGIN_START_UNIT.
|
||||
* gcc.dg/plugin/plugin.exp: Enable new test.
|
||||
|
||||
2018-11-27 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR target/88188
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
#pragma once
|
||||
#define LOCATION_OVERFLOW_TEST_PR83173_1_H
|
|
@ -0,0 +1,2 @@
|
|||
#pragma once
|
||||
#define LOCATION_OVERFLOW_TEST_PR83173_2_H
|
21
gcc/testsuite/gcc.dg/plugin/location-overflow-test-pr83173.c
Normal file
21
gcc/testsuite/gcc.dg/plugin/location-overflow-test-pr83173.c
Normal file
|
@ -0,0 +1,21 @@
|
|||
/*
|
||||
{ dg-options "-fplugin-arg-location_overflow_plugin-value=0x60000001" }
|
||||
{ dg-do preprocess }
|
||||
*/
|
||||
|
||||
#include "location-overflow-test-pr83173.h"
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
The preprocessor output should contain
|
||||
'# 1 "path/to/location-overflow-test-pr83173-1.h" 1', but should not
|
||||
contain any other references to location-overflow-test-pr83183-1.h.
|
||||
|
||||
{ dg-final { scan-file location-overflow-test-pr83173.i "# 1 \[^\r\n\]+location-overflow-test-pr83173-1\.h\" 1" } }
|
||||
{ dg-final { scan-file-not location-overflow-test-pr83173.i "# (?!1 \[^\r\n\]+location-overflow-test-pr83173-1\.h\" 1)\[0-9\]+ \[^\r\n\]+location-overflow-test-pr83173-1\.h\"" } }
|
||||
*/
|
|
@ -0,0 +1,2 @@
|
|||
#include "location-overflow-test-pr83173-1.h"
|
||||
#include "location-overflow-test-pr83173-2.h"
|
|
@ -12,11 +12,14 @@ int plugin_is_GPL_compatible;
|
|||
|
||||
static location_t base_location;
|
||||
|
||||
/* Callback handler for the PLUGIN_START_UNIT event; pretend
|
||||
we parsed a very large include file. */
|
||||
/* Callback handler for the PLUGIN_PRAGMAS event; pretend we parsed a
|
||||
very large include file. This is used to set the initial line table
|
||||
offset for the preprocessor, to make it appear as if we had parsed a
|
||||
very large file. PRAGMA_START_UNIT is not suitable here as is not
|
||||
invoked during the preprocessor stage. */
|
||||
|
||||
static void
|
||||
on_start_unit (void */*gcc_data*/, void */*user_data*/)
|
||||
on_pragma_registration (void */*gcc_data*/, void */*user_data*/)
|
||||
{
|
||||
/* Act as if we've already parsed a large body of code;
|
||||
so that we can simulate various fallbacks in libcpp:
|
||||
|
@ -81,8 +84,8 @@ plugin_init (struct plugin_name_args *plugin_info,
|
|||
error_at (UNKNOWN_LOCATION, "missing plugin argument");
|
||||
|
||||
register_callback (plugin_info->base_name,
|
||||
PLUGIN_START_UNIT,
|
||||
on_start_unit,
|
||||
PLUGIN_PRAGMAS,
|
||||
on_pragma_registration,
|
||||
NULL); /* void *user_data */
|
||||
|
||||
/* Hack in additional testing, based on the exact value supplied. */
|
||||
|
|
|
@ -96,7 +96,8 @@ set plugin_test_list [list \
|
|||
diagnostic-test-inlining-4.c } \
|
||||
{ location_overflow_plugin.c \
|
||||
location-overflow-test-1.c \
|
||||
location-overflow-test-2.c } \
|
||||
location-overflow-test-2.c \
|
||||
location-overflow-test-pr83173.c } \
|
||||
{ must_tail_call_plugin.c \
|
||||
must-tail-call-1.c \
|
||||
must-tail-call-2.c } \
|
||||
|
|
Loading…
Add table
Reference in a new issue