c++: ICE with generic lambda and pack expansion [PR115425]
[official-gcc.git] / gcc / testsuite / obj-c++.dg / try-catch-13.mm
blob0e6f01b23e9703d976d13ca5fbdb6395b7277172
1 /* Ensure that variables declared volatile by the user (as opposed to
2    synthesized by the EH-volatization machinery) _do_ trigger 
3    "discards qualifiers from target pointer type" warnings.  */
5 /* { dg-options "-fobjc-exceptions" } */
6 /* { dg-do compile } */
7 // { dg-additional-options "-Wno-objc-root-class" }
9 @interface TestMyTests
10 - (void) testSpoon;
11 @end
13 extern void some_func (int *); /* { dg-line some_func_decl } */
15 @implementation TestMyTests
16 - (void) testSpoon {
17   volatile int i = 5;
18   int q = 99;
20   do {
21     @try {
22       typeof(i) j = 6;
23       typeof(q) k = 66;
24       some_func (&j);
25 /* { dg-error "invalid conversion" "" { target *-*-* } .-1 } */ 
26 /* { dg-message "initializing argument" "" { target *-*-* } some_func_decl } */
27       some_func (&k);
28     }
29     @catch (id exc) {
30       @throw;
31     }
32   } while(0);
34   do {
35     @try {
36       typeof(i) j = 7;
37       typeof(q) k = 77;
38       some_func (&k);
39       some_func (&j);
40 /* { dg-error "invalid conversion" "" { target *-*-* } .-1 } */
41 /* The following is disabled as it is already checked above and the testsuites seems 
42    to count multiple different identical errors on the same line only once */
43 /*  dg-message "initializing argument" "" { target *-*-* } some_func_decl  */
44     }
45     @catch (id exc) {
46       @throw;
47     }
48   } while(0);
50   do {
51     @try {
52       typeof(q) k = 88;
53       typeof(i) j = 8;
54       some_func (&j); 
55 /* { dg-error "invalid conversion" "" { target *-*-* } .-1 } */
56 /* The following is disabled as it is already checked above and the testsuites seems 
57    to count multiple different identical errors on the same line only once */
58 /*  dg-message "initializing argument" "" { target *-*-* } some_func_decl  */
59       some_func (&k);
60     }
61     @catch (id exc) {
62       @throw;
63     }
64   } while(0);
65       
67 @end