This is the mail archive of the guile@cygnus.com mailing list for the guile project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Greg wrote:
> scwm-constraints.hpp:71: warning: volatile qualifier ignored on asm
>
> I did not get such warnings from egcs-1.01 thru 1.03a, so something must
> have changed. I'm not sure if this is a bug in egcs, or if it's a
> change in its guarantees. If egcs is not buggy on this point, then the
> SCM_FENCE may need to be expanded away to nothing to avoid the warning
> and we need to be sure that something else is preventing code motion as
> SCM_FENCE is intended to do.
Greg - the following g++ patch (which I have committed to egcs) should
fix the problem:
Index: ChangeLog
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/cp/ChangeLog,v
retrieving revision 1.699
diff -c -r1.699 ChangeLog
*** ChangeLog 1998/09/28 17:34:27 1.699
--- ChangeLog 1998/09/29 03:18:42
***************
*** 1,3 ****
--- 1,7 ----
+ 1998-09-28 Anthony Green <green@cygnus.com>
+
+ * semantics.c (finish_asm_stmt): Always permit volatile asms.
+
1998-09-28 Mark Mitchell <mark@markmitchell.com>
* decl.c (grokdeclarator): Tighten checks for invalid
Index: semantics.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/cp/semantics.c,v
retrieving revision 1.30
diff -c -r1.30 semantics.c
*** semantics.c 1998/09/07 14:25:29 1.30
--- semantics.c 1998/09/29 03:18:42
***************
*** 730,757 ****
else
{
emit_line_note (input_filename, lineno);
! if (output_operands != NULL_TREE || input_operands != NULL_TREE
! || clobbers != NULL_TREE)
! {
! if (cv_qualifier != NULL_TREE
! && cv_qualifier != ridpointers[(int) RID_VOLATILE])
! cp_warning ("%s qualifier ignored on asm",
! IDENTIFIER_POINTER (cv_qualifier));
!
! c_expand_asm_operands (string, output_operands,
! input_operands,
! clobbers,
! cv_qualifier
! == ridpointers[(int) RID_VOLATILE],
! input_filename, lineno);
! }
! else
! {
! if (cv_qualifier != NULL_TREE)
! cp_warning ("%s qualifier ignored on asm",
! IDENTIFIER_POINTER (cv_qualifier));
! expand_asm (string);
! }
finish_stmt ();
}
--- 730,747 ----
else
{
emit_line_note (input_filename, lineno);
!
! if (cv_qualifier != NULL_TREE
! && cv_qualifier != ridpointers[(int) RID_VOLATILE])
! cp_warning ("%s qualifier ignored on asm",
! IDENTIFIER_POINTER (cv_qualifier));
!
! c_expand_asm_operands (string, output_operands,
! input_operands,
! clobbers,
! cv_qualifier
! == ridpointers[(int) RID_VOLATILE],
! input_filename, lineno);
finish_stmt ();
}
AG
--
Anthony Green Cygnus Solutions
Sunnyvale, California