mirror of git://gcc.gnu.org/git/gcc.git
tree.c (find_decls_types_r): Remove all non-VAR_DECLs from blocks.
* tree.c (find_decls_types_r): Remove all non-VAR_DECLs from blocks. * g++.dg/lto/pr84805_0.C: Update template. * g++.dg/lto/pr84805_1.C: Update template. From-SVN: r261748
This commit is contained in:
parent
583d09f365
commit
694dc72ebe
|
|
@ -1,3 +1,8 @@
|
|||
2018-06-19 Jan Hubicka <hubicka@ucw.cz>
|
||||
|
||||
* tree.c (find_decls_types_r): Remove all non-VAR_DECLs from
|
||||
blocks.
|
||||
|
||||
2018-06-19 Martin Liska <mliska@suse.cz>
|
||||
|
||||
* config/i386/i386.c (ix86_can_inline_p): Do not use
|
||||
|
|
|
|||
|
|
@ -1,3 +1,8 @@
|
|||
2018-06-19 Jan Hubicka <hubicka@ucw.cz>
|
||||
|
||||
* g++.dg/lto/pr84805_0.C: Update template.
|
||||
* g++.dg/lto/pr84805_1.C: Update template.
|
||||
|
||||
2018-06-19 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* gnat.dg/aggr24.adb: New test.
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ template < typename _Tp, _Lock_policy, bool = is_array< _Tp >::value,
|
|||
bool = is_void::value >
|
||||
class __shared_ptr_access {};
|
||||
template < typename _Tp, _Lock_policy _Lp >
|
||||
class __shared_ptr : __shared_ptr_access< _Tp, _Lp > { // { dg-lto-warning "7: type 'struct __shared_ptr' violates the C\\+\\+ One Definition Rule" }
|
||||
class __shared_ptr : __shared_ptr_access< _Tp, _Lp > {
|
||||
using element_type = _Tp;
|
||||
element_type *_M_ptr;
|
||||
__shared_count< _Lp > _M_refcount;
|
||||
|
|
@ -90,7 +90,7 @@ class ExtNameBuff;
|
|||
class ExtSheetBuffer;
|
||||
class ExcelToSc;
|
||||
class XclImpColRowSettings;
|
||||
struct RootData { // { dg-lto-warning "8: type 'struct RootData' violates the C\\+\\+ One Definition Rule" }
|
||||
struct RootData {
|
||||
BiffTyp eDateiTyp;
|
||||
ExtSheetBuffer *pExtSheetBuff;
|
||||
SharedFormulaBuffer *pShrfmlaBuff;
|
||||
|
|
@ -105,7 +105,7 @@ class ScExtDocOptions;
|
|||
class XclFontPropSetHelper;
|
||||
class XclChPropSetHelper;
|
||||
class XclTracer;
|
||||
struct XclRootData { // { dg-lto-warning "8: type 'struct XclRootData' violates the C\\+\\+ One Definition Rule" }
|
||||
struct XclRootData {
|
||||
typedef std::shared_ptr< ScEditEngineDefaulter > ScEEDefaulterRef;
|
||||
typedef std::shared_ptr< ScHeaderEditEngine > ScHeaderEERef;
|
||||
typedef std::shared_ptr< EditEngine > EditEngineRef;
|
||||
|
|
@ -141,12 +141,12 @@ struct XclRootData { // { dg-lto-warning "8: type 'struct XclRootData' violates
|
|||
RootDataRef mxRD;
|
||||
virtual ~XclRootData();
|
||||
};
|
||||
class XclRoot { // { dg-lto-warning "7: type 'struct XclRoot' violates the C\\+\\+ One Definition Rule" }
|
||||
class XclRoot {
|
||||
public:
|
||||
virtual ~XclRoot();
|
||||
XclRootData &mrData;
|
||||
};
|
||||
class XclImpRoot : XclRoot {}; // { dg-lto-warning "7: type 'struct XclImpRoot' violates the C\\+\\+ One Definition Rule" }
|
||||
class XclImpRoot : XclRoot {};
|
||||
class XclImpColRowSettings : XclImpRoot {};
|
||||
void lcl_ExportExcelBiff() {
|
||||
XclRootData aExpData();
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
class XclRoot {
|
||||
class XclRoot { // { dg-lto-warning "7: type 'struct XclRoot' violates the C\\+\\+ One Definition Rule" }
|
||||
public:
|
||||
virtual ~XclRoot();
|
||||
};
|
||||
class XclImpRoot : XclRoot {};
|
||||
struct RootData {
|
||||
struct RootData { // { dg-lto-warning "8: type 'struct RootData' violates the C\\+\\+ One Definition Rule" }
|
||||
XclImpRoot pIR;
|
||||
};
|
||||
class ExcRoot {
|
||||
|
|
|
|||
25
gcc/tree.c
25
gcc/tree.c
|
|
@ -5173,7 +5173,10 @@ free_lang_data_in_type (tree type)
|
|||
/* Drop TYPE_DECLs in TYPE_NAME in favor of the identifier in the
|
||||
TYPE_DECL if the type doesn't have linkage. */
|
||||
if (! type_with_linkage_p (type))
|
||||
TYPE_NAME (type) = TYPE_IDENTIFIER (type);
|
||||
{
|
||||
TYPE_NAME (type) = TYPE_IDENTIFIER (type);
|
||||
TYPE_STUB_DECL (type) = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -5556,10 +5559,22 @@ find_decls_types_r (tree *tp, int *ws, void *data)
|
|||
}
|
||||
else if (TREE_CODE (t) == BLOCK)
|
||||
{
|
||||
tree tem;
|
||||
for (tem = BLOCK_VARS (t); tem; tem = TREE_CHAIN (tem))
|
||||
fld_worklist_push (tem, fld);
|
||||
for (tem = BLOCK_SUBBLOCKS (t); tem; tem = BLOCK_CHAIN (tem))
|
||||
for (tree *tem = &BLOCK_VARS (t); *tem; )
|
||||
{
|
||||
if (TREE_CODE (*tem) != VAR_DECL
|
||||
|| !auto_var_in_fn_p (*tem, DECL_CONTEXT (*tem)))
|
||||
{
|
||||
gcc_assert (TREE_CODE (*tem) != RESULT_DECL
|
||||
&& TREE_CODE (*tem) != PARM_DECL);
|
||||
*tem = TREE_CHAIN (*tem);
|
||||
}
|
||||
else
|
||||
{
|
||||
fld_worklist_push (*tem, fld);
|
||||
tem = &TREE_CHAIN (*tem);
|
||||
}
|
||||
}
|
||||
for (tree tem = BLOCK_SUBBLOCKS (t); tem; tem = BLOCK_CHAIN (tem))
|
||||
fld_worklist_push (tem, fld);
|
||||
fld_worklist_push (BLOCK_ABSTRACT_ORIGIN (t), fld);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue