2010-11-18 Doug Kwan <dougkwan@google.com>
* expression.cc (BINARY_EXPRESSION): Initialize left_alignment and right_alignment to be zero. Store result alignment only if it is greater than existing alignment.
This commit is contained in:
parent
60a60dd984
commit
0ad220c952
|
@ -1,3 +1,9 @@
|
||||||
|
2010-11-18 Doug Kwan <dougkwan@google.com>
|
||||||
|
|
||||||
|
* expression.cc (BINARY_EXPRESSION): Initialize left_alignment
|
||||||
|
and right_alignment to be zero. Store result alignment only if it is
|
||||||
|
greater than existing alignment.
|
||||||
|
|
||||||
2010-11-16 Cary Coutant <ccoutant@google.com>
|
2010-11-16 Cary Coutant <ccoutant@google.com>
|
||||||
|
|
||||||
PR gold/12220
|
PR gold/12220
|
||||||
|
|
|
@ -399,18 +399,19 @@ class Binary_expression : public Expression
|
||||||
value(const Expression_eval_info* eei) \
|
value(const Expression_eval_info* eei) \
|
||||||
{ \
|
{ \
|
||||||
Output_section* left_section; \
|
Output_section* left_section; \
|
||||||
uint64_t left_alignment; \
|
uint64_t left_alignment = 0; \
|
||||||
uint64_t left = this->left_value(eei, &left_section, \
|
uint64_t left = this->left_value(eei, &left_section, \
|
||||||
&left_alignment); \
|
&left_alignment); \
|
||||||
Output_section* right_section; \
|
Output_section* right_section; \
|
||||||
uint64_t right_alignment; \
|
uint64_t right_alignment = 0; \
|
||||||
uint64_t right = this->right_value(eei, &right_section, \
|
uint64_t right = this->right_value(eei, &right_section, \
|
||||||
&right_alignment); \
|
&right_alignment); \
|
||||||
if (KEEP_RIGHT && left_section == NULL && right_section != NULL) \
|
if (KEEP_RIGHT && left_section == NULL && right_section != NULL) \
|
||||||
{ \
|
{ \
|
||||||
if (eei->result_section_pointer != NULL) \
|
if (eei->result_section_pointer != NULL) \
|
||||||
*eei->result_section_pointer = right_section; \
|
*eei->result_section_pointer = right_section; \
|
||||||
if (eei->result_alignment_pointer != NULL) \
|
if (eei->result_alignment_pointer != NULL \
|
||||||
|
&& right_alignment > *eei->result_alignment_pointer) \
|
||||||
*eei->result_alignment_pointer = right_alignment; \
|
*eei->result_alignment_pointer = right_alignment; \
|
||||||
} \
|
} \
|
||||||
else if (KEEP_LEFT \
|
else if (KEEP_LEFT \
|
||||||
|
@ -419,8 +420,9 @@ class Binary_expression : public Expression
|
||||||
{ \
|
{ \
|
||||||
if (eei->result_section_pointer != NULL) \
|
if (eei->result_section_pointer != NULL) \
|
||||||
*eei->result_section_pointer = left_section; \
|
*eei->result_section_pointer = left_section; \
|
||||||
if (eei->result_alignment_pointer != NULL) \
|
if (eei->result_alignment_pointer != NULL \
|
||||||
*eei->result_alignment_pointer = right_alignment; \
|
&& left_alignment > *eei->result_alignment_pointer) \
|
||||||
|
*eei->result_alignment_pointer = left_alignment; \
|
||||||
} \
|
} \
|
||||||
else if ((WARN || left_section != right_section) \
|
else if ((WARN || left_section != right_section) \
|
||||||
&& (left_section != NULL || right_section != NULL) \
|
&& (left_section != NULL || right_section != NULL) \
|
||||||
|
|
Loading…
Reference in New Issue