On 09/16/2014 05:15 AM, Andi Kleen wrote:
This version addresses earlier comments and has an updated testsuite
(still no LTO tests however). The assembler statements also
no stay in order with ordered statements.

It doesn't disable sorting of paritions with ordered symbols. I think
that's an existing bug and is best addressed separately.

Passed LTO boot strap and test on x86_64-linux, plus build
of a large project that needs LTO order.

-Andi


Hello.

I've just merged trunk to my branch and observed regression connected to this 
patchset:

../../../libcilkrts/runtime/config/x86/os-unix-sysdep.c:114:5: internal 
compiler error: tree check: expected tree_list, have var_decl in 
get_attribute_name, at attribs.c:679
     if (__builtin_cpu_supports("sse"))
     ^
0xc757a4 tree_check_failed(tree_node const*, char const*, int, char const*, ...)
        ../../gcc/tree.c:9167
0x566a35 tree_check
        ../../gcc/tree.h:2967
0x566a35 get_attribute_name(tree_node const*)
        ../../gcc/attribs.c:679
0xc788b5 private_lookup_attribute(char const*, unsigned long, tree_node*)
        ../../gcc/tree.c:5753
0xcd0468 lookup_attribute
        ../../gcc/tree.h:3773
0xcd0468 varpool_node::add(tree_node*)
        ../../gcc/varpool.c:452
0xced982 fold_builtin_cpu
        ../../gcc/config/i386/i386.c:32480
0x6826ef fold_builtin_call_array(unsigned int, tree_node*, tree_node*, int, 
tree_node**)
        ../../gcc/builtins.c:10565
0x59ec54 build_function_call_vec(unsigned int, vec<unsigned int, va_heap, vl_ptr>, 
tree_node*, vec<tree_node*, va_gc, vl_embed>*, vec<tree_node*, va_gc, vl_embed>*)
        ../../gcc/c/c-typeck.c:2958
0x5c659e c_parser_postfix_expression_after_primary
        ../../gcc/c/c-parser.c:7770
0x5b97bb c_parser_postfix_expression
        ../../gcc/c/c-parser.c:7590
0x5bbe6a c_parser_unary_expression
        ../../gcc/c/c-parser.c:6517
0x5c1ff6 c_parser_cast_expression
        ../../gcc/c/c-parser.c:6355
0x5c2235 c_parser_binary_expression
        ../../gcc/c/c-parser.c:6170
0x5c2de5 c_parser_conditional_expression
        ../../gcc/c/c-parser.c:5946
0x5c3420 c_parser_expr_no_commas
        ../../gcc/c/c-parser.c:5864
0x5c3ae6 c_parser_expression
        ../../gcc/c/c-parser.c:7897
0x5c45a9 c_parser_expression_conv
        ../../gcc/c/c-parser.c:7930
0x5c4622 c_parser_condition
        ../../gcc/c/c-parser.c:5050
0x5c46b7 c_parser_paren_condition
        ../../gcc/c/c-parser.c:5069


There's missing DECL_ATTRIBUTES in varpool.c in lookup_attribute call.

Ready for trunk?

Martin
diff --git a/gcc/varpool.c b/gcc/varpool.c
index 8001c93..3761f14 100644
--- a/gcc/varpool.c
+++ b/gcc/varpool.c
@@ -449,7 +449,7 @@ varpool_node::add (tree decl)
   symtab->call_varpool_insertion_hooks (node);
   if (node->externally_visible_p ())
     node->externally_visible = true;
-  if (lookup_attribute ("no_reorder", decl))
+  if (lookup_attribute ("no_reorder", DECL_ATTRIBUTES (decl)))
     node->no_reorder = 1;
 }
 

Reply via email to