Files correlati : Commento : Aggiunto il preprocessore c++ mcpp per sostituire il compilatore nella compilazione delle maschere.
		
			
				
	
	
		
			67 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Raku
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Raku
		
	
	
	
	
	
| /*
 | |
|  *      e_std99.t
 | |
|  *
 | |
|  * 2002/08      made public                                     kmatsui
 | |
|  * 2003/11      added a few samples                             kmatsui
 | |
|  *
 | |
|  * Samples to test Standard C99 preprocessing.
 | |
|  * C99 preprocessor must diagnose all of these samples appropriately.
 | |
|  */
 | |
| 
 | |
| 
 | |
| /* e_ucn.t:     Errors of Universal-character-name sequense.    */
 | |
| 
 | |
| #define macro\U0000001F     violation of constraint
 | |
| #define macro\uD800         violation of constraint (only C, not for C++)
 | |
| #define macro\u123          too short sequence (violation of syntax rule)
 | |
| #define macro\U1234567      also too short sequence
 | |
| 
 | |
| 
 | |
| /* e_intmax.t:  Overflow of constant expression in #if directive.    */
 | |
| 
 | |
| #include    <stdint.h>
 | |
| 
 | |
| #if     INTMAX_MAX - INTMAX_MIN
 | |
| #endif
 | |
| #if     INTMAX_MAX + 1
 | |
| #endif
 | |
| #if     INTMAX_MIN - 1
 | |
| #endif
 | |
| #if     INTMAX_MAX * 2
 | |
| #endif
 | |
| 
 | |
| #include	<limits.h>
 | |
| 
 | |
| #if     LLONG_MAX - LLONG_MIN
 | |
| #endif
 | |
| #if     LLONG_MAX + 1
 | |
| #endif
 | |
| #if     LLONG_MIN - 1
 | |
| #endif
 | |
| #if     LLONG_MAX * 2
 | |
| #endif
 | |
| 
 | |
| 
 | |
| /* e_pragma.t:  Erroneous use of _Pragma() operator */
 | |
|         /* Operand of _Pragma() should be a string literal  */
 | |
|     _Pragma( This is not a string literal)
 | |
| 
 | |
| 
 | |
| /* e_vargs1.t:  Erroneous usage of __VA_ARGS__  */
 | |
| 
 | |
| /* __VA_ARGS__ should not be defined.   */
 | |
|     #define __VA_ARGS__ (x, y, z)
 | |
| 
 | |
| /*
 | |
|  * __VA_ARGS__ should be the parameter name in replacement list
 | |
|  * corresponding to '...'.
 | |
|  */
 | |
|     #define wrong_macro( a, b, __VA_ARGS__) (a + b - __VA_ARGS__)
 | |
| 
 | |
| 
 | |
| /* e_vargs2.t:  Erroneous macro invocation of variable arguments    */
 | |
|     #define debug( ...) fprintf( stderr, __VA_ARGS__)
 | |
|         /* No argument to correspond __VA_ARGS__    */
 | |
|     debug();
 | |
| 
 |