[Mono-bugs] [Bug 22565] New - #if sections seem not to exclude other preprocessor elements

bugzilla-daemon@rocky.ximian.com bugzilla-daemon@rocky.ximian.com
26 Mar 2002 21:21:32 -0000


Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by duco@lorentz.xs4all.nl.

http://bugzilla.ximian.com/show_bug.cgi?id=22565

--- shadow/22565	Tue Mar 26 16:21:32 2002
+++ shadow/22565.tmp.31519	Tue Mar 26 16:21:32 2002
@@ -0,0 +1,59 @@
+Bug#: 22565
+Product: Mono/MCS
+Version: unspecified
+OS: 
+OS Details: SuSE Linux 7.1
+Status: NEW   
+Resolution: 
+Severity: 
+Priority: Normal
+Component: Misc
+AssignedTo: mono-bugs@ximian.com                            
+ReportedBy: duco@lorentz.xs4all.nl               
+QAContact: mono-bugs@ximian.com
+TargetMilestone: ---
+URL: 
+Cc: 
+Summary: #if sections seem not to exclude other preprocessor elements
+
+Description of Problem:
+When a #if-section is to be excluded, "real" C# code is indeed not
+processed. Other preprocessor elements (such as #warning and #define) are
+happily included 
+
+Steps to reproduce the problem:
+using System;
+
+public class Test {
+
+// Error:
+// #waring and #define are processed, although NOTDEFINED is not defined
+#if NOTDEFINED
+#warning This is a warning
+#define AAA
+#endif
+
+#if AAA
+        public static int Number () { return 42; }
+#endif
+
+        public static void Main ()
+        {
+                Console.WriteLine ( Number() );
+        }
+}
+
+
+
+Actual Results:
+Compilating yields the warning "This is a warning" and generates an
+executable that prints the number 42.
+
+Expected Results:
+No warning "This is a warning", as the #warning preprocessor element should
+be excluded by the #if. A compiler error "the name 'Number' does not
+exist", as "AAA" should not be defined so that the definition of 'Number'
+should be excluded.
+
+How often does this happen? 
+Always