PR lto/63270 - new test
* g++.dg/lto/pr63270_0.C: New test. * g++.dg/lto/pr63270_1.C: New test. From-SVN: r215451
This commit is contained in:
parent
c2095627b7
commit
6e5dedda84
3 changed files with 131 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
|||
2014-09-22 Martin Liska <mliska@suse.cz>
|
||||
|
||||
PR lto/63270
|
||||
* g++.dg/lto/pr63270_0.C: New test.
|
||||
* g++.dg/lto/pr63270_1.C: New test.
|
||||
|
||||
2014-09-21 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
* gcc.target/i386/avx-vzeroupper-16.c (dg-final): Remove check
|
||||
|
|
72
gcc/testsuite/g++.dg/lto/pr63270_0.C
Normal file
72
gcc/testsuite/g++.dg/lto/pr63270_0.C
Normal file
|
@ -0,0 +1,72 @@
|
|||
// { dg-lto-do link }
|
||||
// { dg-lto-options {{-flto -O2 -Wno-odr}} }
|
||||
typedef unsigned long uintptr_t;
|
||||
namespace v8 {
|
||||
class Extension;
|
||||
namespace internal {
|
||||
class A {
|
||||
public:
|
||||
A(int);
|
||||
};
|
||||
class B {
|
||||
public:
|
||||
B(int);
|
||||
};
|
||||
class Scanner;
|
||||
class FuncNameInferrer;
|
||||
template <typename Traits> class ParserBase : Traits {
|
||||
class FunctionState;
|
||||
bool parenthesized_function_;
|
||||
typename Traits::Type::Scope *scope_;
|
||||
FunctionState *function_state_;
|
||||
v8::Extension *extension_;
|
||||
FuncNameInferrer *fni_;
|
||||
Scanner *scanner_;
|
||||
uintptr_t stack_limit_;
|
||||
bool stack_overflow_;
|
||||
bool allow_lazy_;
|
||||
bool allow_natives_syntax_;
|
||||
bool allow_generators_;
|
||||
bool allow_for_of_;
|
||||
typename Traits::Type::Zone *zone_;
|
||||
};
|
||||
class PreParserScope;
|
||||
class F;
|
||||
class PreParserTraits {
|
||||
public:
|
||||
struct Type {
|
||||
typedef PreParserScope Scope;
|
||||
typedef void Zone;
|
||||
};
|
||||
|
||||
private:
|
||||
F *pre_parser_;
|
||||
};
|
||||
class F : ParserBase<PreParserTraits> {};
|
||||
class C {
|
||||
public:
|
||||
struct Type {
|
||||
typedef v8::internal::FuncNameInferrer Scope;
|
||||
typedef int Zone;
|
||||
};
|
||||
};
|
||||
class G : ParserBase<C> {
|
||||
public:
|
||||
static int m_fn1();
|
||||
F reusable_preparser_;
|
||||
};
|
||||
class D {
|
||||
public:
|
||||
D(int) : function_(0), context_(0), nested_scope_chain_(0) { G::m_fn1(); }
|
||||
B function_;
|
||||
B context_;
|
||||
A nested_scope_chain_;
|
||||
};
|
||||
void fn1() { D(0); }
|
||||
}
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
return 0;
|
||||
}
|
53
gcc/testsuite/g++.dg/lto/pr63270_1.C
Normal file
53
gcc/testsuite/g++.dg/lto/pr63270_1.C
Normal file
|
@ -0,0 +1,53 @@
|
|||
typedef unsigned long uintptr_t;
|
||||
namespace v8
|
||||
{
|
||||
|
||||
int kPointerSize = 0;
|
||||
|
||||
class Extension;
|
||||
namespace internal
|
||||
{
|
||||
class Token;
|
||||
class Scanner;
|
||||
int kCodeOffset = 0;
|
||||
int kOptimizedCodeMapOffset = 0;
|
||||
int kScopeInfoOffset = 0;
|
||||
|
||||
class FuncNameInferrer;
|
||||
template < typename Traits > class ParserBase:Traits
|
||||
{
|
||||
class FunctionState;
|
||||
bool parenthesized_function_;
|
||||
typename Traits::Type::Scope * scope_;
|
||||
FunctionState *function_state_;
|
||||
v8::Extension * extension_;
|
||||
FuncNameInferrer *fni_;
|
||||
Scanner *scanner_;
|
||||
uintptr_t stack_limit_;
|
||||
bool stack_overflow_;
|
||||
bool allow_lazy_;
|
||||
bool allow_natives_syntax_;
|
||||
bool allow_generators_;
|
||||
bool allow_for_of_;
|
||||
typename Traits::Type::Zone * zone_;
|
||||
};
|
||||
class PreParserScope;
|
||||
class PreParser;
|
||||
class PreParserTraits
|
||||
{
|
||||
public:struct Type
|
||||
{
|
||||
typedef PreParserScope Scope;
|
||||
typedef void Zone;
|
||||
};
|
||||
PreParser *pre_parser_;
|
||||
};
|
||||
class PreParser:ParserBase < PreParserTraits >
|
||||
{
|
||||
int ParseMemberWithNewPrefixesExpression ( bool * );
|
||||
};
|
||||
int PreParser::ParseMemberWithNewPrefixesExpression ( bool * )
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue