re PR c++/53848 (ICE in decl_linkage at ../../gcc-trunk/gcc/cp/tree.c:3215)
PR c++/53848 * decl.c (build_enumerator): Don't use build_lang_decl_loc. From-SVN: r189267
This commit is contained in:
parent
3f1ae7424c
commit
fece06368c
|
@ -1,3 +1,9 @@
|
|||
2012-07-04 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/53848
|
||||
PR c++/53524
|
||||
* decl.c (build_enumerator): Don't use build_lang_decl_loc.
|
||||
|
||||
2012-07-03 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/53812
|
||||
|
|
|
@ -12561,13 +12561,6 @@ incremented enumerator value is too large for %<long%>");
|
|||
course, if we're processing a template, there may be no value. */
|
||||
type = value ? TREE_TYPE (value) : NULL_TREE;
|
||||
|
||||
if (context && context == current_class_type)
|
||||
/* This enum declaration is local to the class. We need the full
|
||||
lang_decl so that we can record DECL_CLASS_CONTEXT, for example. */
|
||||
decl = build_lang_decl_loc (loc, CONST_DECL, name, type);
|
||||
else
|
||||
/* It's a global enum, or it's local to a function. (Note local to
|
||||
a function could mean local to a class method. */
|
||||
decl = build_decl (loc, CONST_DECL, name, type);
|
||||
|
||||
DECL_CONTEXT (decl) = enumtype;
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2012-07-04 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/53848
|
||||
* g++.dg/other/enum3.C: New.
|
||||
|
||||
2012-07-04 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
PR middle-end/53321
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
// PR c++/53848
|
||||
|
||||
extern "C"
|
||||
{
|
||||
struct s {
|
||||
enum {
|
||||
e = 0
|
||||
} f;
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue