[llvm-bugs] [Bug 50859] New: Compile error when compiling xcpt4u.c of github microsoft compiler-tests

via llvm-bugs llvm-bugs at lists.llvm.org
Thu Jun 24 22:44:37 PDT 2021


https://bugs.llvm.org/show_bug.cgi?id=50859

            Bug ID: 50859
           Summary: Compile error when compiling xcpt4u.c of github
                    microsoft compiler-tests
           Product: clang
           Version: trunk
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: LLVM Codegen
          Assignee: unassignedclangbugs at nondot.org
          Reporter: tao.pan at intel.com
                CC: llvm-bugs at lists.llvm.org, neeilans at live.com,
                    richard-llvm at metafoo.co.uk

The test file is in
https://github.com/microsoft/compiler-tests/blob/master/seh/xcpt4u.c

Compile error if use cl.exe
D:\llvm\compiler-tests\seh>cl.exe xcpt4u.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.29.30037 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

xcpt4u.c
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um\winnt.h(19774):
error C2143: syntax error: missing ')' before '('
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um\winnt.h(19774):
error C2059: syntax error: ')'
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um\winnt.h(19774):
error C2143: syntax error: missing ')' before '->'
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um\winnt.h(19774):
error C2091: function returns function
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um\winnt.h(19774):
error C2143: syntax error: missing '{' before '->'
C:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um\winnt.h(19774):
error C2059: syntax error: '->'

More compile error if use clang-cl.exe
$ /c/work/llvm/llvm-project-4/build/Release/bin/clang-cl.exe xcpt4u.c
-fuse-ld=lld
In file included from xcpt4u.c:51:
In file included from C:\Program Files (x86)\Windows
Kits\10\Include\10.0.19041.0\um\windows.h:171:
In file included from C:\Program Files (x86)\Windows
Kits\10\Include\10.0.19041.0\shared\windef.h:24:
In file included from C:\Program Files (x86)\Windows
Kits\10\Include\10.0.19041.0\shared\minwindef.h:182:
C:\Program Files (x86)\Windows
Kits\10\Include\10.0.19041.0\um\winnt.h(19772,1): error: expected ')'
RtlRaiseException(
^
xcpt4u.c(26,21): note: expanded from macro 'RtlRaiseException'
  RaiseException((x)->ExceptionCode, (x)->ExceptionFlags,                     
\
                    ^
C:\Program Files (x86)\Windows
Kits\10\Include\10.0.19041.0\um\winnt.h(19772,1): note: to match this '('
xcpt4u.c(26,17): note: expanded from macro 'RtlRaiseException'
  RaiseException((x)->ExceptionCode, (x)->ExceptionFlags,                     
\
                ^
In file included from xcpt4u.c:51:
In file included from C:\Program Files (x86)\Windows
Kits\10\Include\10.0.19041.0\um\windows.h:172:
In file included from C:\Program Files (x86)\Windows
Kits\10\Include\10.0.19041.0\um\winbase.h:47:
C:\Program Files (x86)\Windows
Kits\10\Include\10.0.19041.0\um\errhandlingapi.h(45,1): error: conflicting
types for 'RaiseException'
RaiseException(
^
C:\Program Files (x86)\Windows
Kits\10\Include\10.0.19041.0\um\winnt.h(19772,1): note: previous declaration is
here
RtlRaiseException(
^
xcpt4u.c(26,3): note: expanded from macro 'RtlRaiseException'
  RaiseException((x)->ExceptionCode, (x)->ExceptionFlags,                     
\
  ^
xcpt4u.c(162,11): warning: jump out of __finally block has undefined behavior
[-Wjump-seh-finally]
          return;
          ^
xcpt4u.c(191,13): warning: jump out of __finally block has undefined behavior
[-Wjump-seh-finally]
            return;
            ^
xcpt4u.c(230,13): warning: jump out of __finally block has undefined behavior
[-Wjump-seh-finally]
            return;
            ^
xcpt4u.c(282,11): warning: jump out of __finally block has undefined behavior
[-Wjump-seh-finally]
          return;
          ^
xcpt4u.c(322,11): warning: jump out of __finally block has undefined behavior
[-Wjump-seh-finally]
          return;
          ^
xcpt4u.c(369,11): warning: jump out of __finally block has undefined behavior
[-Wjump-seh-finally]
          return;
          ^
xcpt4u.c(416,11): warning: jump out of __finally block has undefined behavior
[-Wjump-seh-finally]
          return;
          ^
xcpt4u.c(462,11): warning: jump out of __finally block has undefined behavior
[-Wjump-seh-finally]
          return;
          ^
xcpt4u.c(510,11): warning: jump out of __finally block has undefined behavior
[-Wjump-seh-finally]
          return;
          ^
xcpt4u.c(762,43): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
            except(printf("Filter1 %d..", *Counter),
                                   ~~     ^~~~~~~~
                                   %ld
xcpt4u.c(765,41): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
                printf("Handler1 %d..", *Counter);
                                 ~~     ^~~~~~~~
                                 %ld
xcpt4u.c(769,41): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
                printf("Finally1 %d..", *Counter);
                                 ~~     ^~~~~~~~
                                 %ld
xcpt4u.c(775,37): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
            printf("Finally2 %d..", *Counter);
                             ~~     ^~~~~~~~
                             %ld
xcpt4u.c(842,17): warning: jump out of __finally block has undefined behavior
[-Wjump-seh-finally]
                return;
                ^
xcpt4u.c(880,9): warning: jump out of __finally block has undefined behavior
[-Wjump-seh-finally]
        goto Finish;
        ^
xcpt4u.c(871,11): warning: jump out of __finally block has undefined behavior
[-Wjump-seh-finally]
          goto Finish;
          ^
xcpt4u.c(980,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(999,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1014,5): error: too many arguments to function call, expected 1, have
4
    RtlRaiseException(&ExceptionRecord);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xcpt4u.c(26,38): note: expanded from macro 'RtlRaiseException'
  RaiseException((x)->ExceptionCode, (x)->ExceptionFlags,                     
\
  ~~~~~~~~~~~~~~                    
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Program Files (x86)\Windows
Kits\10\Include\10.0.19041.0\um\winnt.h(19772,1): note: 'RaiseException'
declared here
RtlRaiseException(
^
xcpt4u.c(26,3): note: expanded from macro 'RtlRaiseException'
  RaiseException((x)->ExceptionCode, (x)->ExceptionFlags,                     
\
  ^
xcpt4u.c(1019,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1033,5): error: too many arguments to function call, expected 1, have
4
    RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xcpt4u.c(24,47): note: expanded from macro 'RtlRaiseStatus'
#define RtlRaiseStatus(x) RaiseException((x), 0, 0, NULL)
                          ~~~~~~~~~~~~~~      ^~~~~~~~~~
C:\Program Files (x86)\Windows
Kits\10\Include\10.0.19041.0\um\winnt.h(19772,1): note: 'RaiseException'
declared here
RtlRaiseException(
^
xcpt4u.c(26,3): note: expanded from macro 'RtlRaiseException'
  RaiseException((x)->ExceptionCode, (x)->ExceptionFlags,                     
\
  ^
xcpt4u.c(1038,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1057,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1073,7): error: too many arguments to function call, expected 1, have
4
      RtlRaiseException(&ExceptionRecord);
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xcpt4u.c(26,38): note: expanded from macro 'RtlRaiseException'
  RaiseException((x)->ExceptionCode, (x)->ExceptionFlags,                     
\
  ~~~~~~~~~~~~~~                    
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Program Files (x86)\Windows
Kits\10\Include\10.0.19041.0\um\winnt.h(19772,1): note: 'RaiseException'
declared here
RtlRaiseException(
^
xcpt4u.c(26,3): note: expanded from macro 'RtlRaiseException'
  RaiseException((x)->ExceptionCode, (x)->ExceptionFlags,                     
\
  ^
xcpt4u.c(1088,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1119,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1142,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1165,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1189,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1213,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1238,40): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
        printf("failed, count = %d\n", Counter);
                                ~~     ^~~~~~~
                                %ld
xcpt4u.c(1249,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1274,40): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
        printf("failed, count = %d\n", Counter);
                                ~~     ^~~~~~~
                                %ld
xcpt4u.c(1285,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1315,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1342,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1373,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1400,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1419,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1438,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1460,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1487,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1517,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1536,9): error: too many arguments to function call, expected 1, have
4
        RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xcpt4u.c(24,47): note: expanded from macro 'RtlRaiseStatus'
#define RtlRaiseStatus(x) RaiseException((x), 0, 0, NULL)
                          ~~~~~~~~~~~~~~      ^~~~~~~~~~
C:\Program Files (x86)\Windows
Kits\10\Include\10.0.19041.0\um\winnt.h(19772,1): note: 'RaiseException'
declared here
RtlRaiseException(
^
xcpt4u.c(26,3): note: expanded from macro 'RtlRaiseException'
  RaiseException((x)->ExceptionCode, (x)->ExceptionFlags,                     
\
  ^
xcpt4u.c(1550,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1572,13): error: too many arguments to function call, expected 1, have
4
            RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xcpt4u.c(24,47): note: expanded from macro 'RtlRaiseStatus'
#define RtlRaiseStatus(x) RaiseException((x), 0, 0, NULL)
                          ~~~~~~~~~~~~~~      ^~~~~~~~~~
C:\Program Files (x86)\Windows
Kits\10\Include\10.0.19041.0\um\winnt.h(19772,1): note: 'RaiseException'
declared here
RtlRaiseException(
^
xcpt4u.c(26,3): note: expanded from macro 'RtlRaiseException'
  RaiseException((x)->ExceptionCode, (x)->ExceptionFlags,                     
\
  ^
xcpt4u.c(1590,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1622,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1660,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1682,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1705,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1757,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1785,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1819,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1852,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1872,7): warning: jump out of __finally block has undefined behavior
[-Wjump-seh-finally]
      continue;
      ^
xcpt4u.c(1879,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1900,9): warning: jump out of __finally block has undefined behavior
[-Wjump-seh-finally]
        continue;
        ^
xcpt4u.c(1911,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1936,7): warning: jump out of __finally block has undefined behavior
[-Wjump-seh-finally]
      continue;
      ^
xcpt4u.c(1943,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1971,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(1999,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(2033,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(2066,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(2086,7): warning: jump out of __finally block has undefined behavior
[-Wjump-seh-finally]
      break;
      ^
xcpt4u.c(2093,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(2114,9): warning: jump out of __finally block has undefined behavior
[-Wjump-seh-finally]
        break;
        ^
xcpt4u.c(2125,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(2150,7): warning: jump out of __finally block has undefined behavior
[-Wjump-seh-finally]
      break;
      ^
xcpt4u.c(2157,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(2192,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(2226,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(2266,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(2305,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(2331,7): warning: jump out of __finally block has undefined behavior
[-Wjump-seh-finally]
      break;
      ^
xcpt4u.c(2338,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(2365,9): warning: jump out of __finally block has undefined behavior
[-Wjump-seh-finally]
        break;
        ^
xcpt4u.c(2376,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(2407,7): warning: jump out of __finally block has undefined behavior
[-Wjump-seh-finally]
      break;
      ^
xcpt4u.c(2414,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(2443,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(2472,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(2503,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(2547,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(2574,9): warning: jump out of __finally block has undefined behavior
[-Wjump-seh-finally]
        leave;
        ^
xcpt4u.c(37,15): note: expanded from macro 'leave'
#define leave __leave
              ^
xcpt4u.c(2587,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(2603,5): error: too many arguments to function call, expected 1, have
4
    RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xcpt4u.c(24,47): note: expanded from macro 'RtlRaiseStatus'
#define RtlRaiseStatus(x) RaiseException((x), 0, 0, NULL)
                          ~~~~~~~~~~~~~~      ^~~~~~~~~~
C:\Program Files (x86)\Windows
Kits\10\Include\10.0.19041.0\um\winnt.h(19772,1): note: 'RaiseException'
declared here
RtlRaiseException(
^
xcpt4u.c(26,3): note: expanded from macro 'RtlRaiseException'
  RaiseException((x)->ExceptionCode, (x)->ExceptionFlags,                     
\
  ^
xcpt4u.c(2617,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(2646,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(2667,7): error: too many arguments to function call, expected 1, have
4
      RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xcpt4u.c(24,47): note: expanded from macro 'RtlRaiseStatus'
#define RtlRaiseStatus(x) RaiseException((x), 0, 0, NULL)
                          ~~~~~~~~~~~~~~      ^~~~~~~~~~
C:\Program Files (x86)\Windows
Kits\10\Include\10.0.19041.0\um\winnt.h(19772,1): note: 'RaiseException'
declared here
RtlRaiseException(
^
xcpt4u.c(26,3): note: expanded from macro 'RtlRaiseException'
  RaiseException((x)->ExceptionCode, (x)->ExceptionFlags,                     
\
  ^
xcpt4u.c(2682,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(2698,5): error: too many arguments to function call, expected 1, have
4
    RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xcpt4u.c(24,47): note: expanded from macro 'RtlRaiseStatus'
#define RtlRaiseStatus(x) RaiseException((x), 0, 0, NULL)
                          ~~~~~~~~~~~~~~      ^~~~~~~~~~
C:\Program Files (x86)\Windows
Kits\10\Include\10.0.19041.0\um\winnt.h(19772,1): note: 'RaiseException'
declared here
RtlRaiseException(
^
xcpt4u.c(26,3): note: expanded from macro 'RtlRaiseException'
  RaiseException((x)->ExceptionCode, (x)->ExceptionFlags,                     
\
  ^
xcpt4u.c(2703,7): error: too many arguments to function call, expected 1, have
4
      RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xcpt4u.c(24,47): note: expanded from macro 'RtlRaiseStatus'
#define RtlRaiseStatus(x) RaiseException((x), 0, 0, NULL)
                          ~~~~~~~~~~~~~~      ^~~~~~~~~~
C:\Program Files (x86)\Windows
Kits\10\Include\10.0.19041.0\um\winnt.h(19772,1): note: 'RaiseException'
declared here
RtlRaiseException(
^
xcpt4u.c(26,3): note: expanded from macro 'RtlRaiseException'
  RaiseException((x)->ExceptionCode, (x)->ExceptionFlags,                     
\
  ^
xcpt4u.c(2709,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(2728,5): error: too many arguments to function call, expected 1, have
4
    RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xcpt4u.c(24,47): note: expanded from macro 'RtlRaiseStatus'
#define RtlRaiseStatus(x) RaiseException((x), 0, 0, NULL)
                          ~~~~~~~~~~~~~~      ^~~~~~~~~~
C:\Program Files (x86)\Windows
Kits\10\Include\10.0.19041.0\um\winnt.h(19772,1): note: 'RaiseException'
declared here
RtlRaiseException(
^
xcpt4u.c(26,3): note: expanded from macro 'RtlRaiseException'
  RaiseException((x)->ExceptionCode, (x)->ExceptionFlags,                     
\
  ^
xcpt4u.c(2733,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(2749,17): warning: passing 'LONG *' (aka 'long *') to parameter of
type 'PULONG' (aka 'unsigned long *') converts between pointers to integer
types with different sign [-Wpointer-sign]
    Test61Part2(&Counter);
                ^~~~~~~~
xcpt4u.c(105,32): note: passing argument to parameter 'Counter' here
VOID Test61Part2(IN OUT PULONG Counter);
                               ^
xcpt4u.c(2754,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(2776,3): warning: '_controlfp' is deprecated: This function or
variable may be unsafe. Consider using _controlfp_s instead. To disable
deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
[-Wdeprecated-declarations]
  _controlfp(_controlfp(0, 0) & ~EM_OVERFLOW, _MCW_EM);
  ^
C:\Program Files (x86)\Windows
Kits\10\Include\10.0.19041.0\ucrt\float.h(236,27): note: '_controlfp' has been
explicitly marked deprecated here
_CRT_MANAGED_FP_DEPRECATE _CRT_INSECURE_DEPRECATE(_controlfp_s)
                          ^
C:\Program Files (x86)\Microsoft Visual
Studio\2019\Professional\VC\Tools\MSVC\14.29.30037\include\vcruntime.h(320,55):
note: expanded from macro '_CRT_INSECURE_DEPRECATE'
        #define _CRT_INSECURE_DEPRECATE(_Replacement) _CRT_DEPRECATE_TEXT(    \
                                                      ^
C:\Program Files (x86)\Microsoft Visual
Studio\2019\Professional\VC\Tools\MSVC\14.29.30037\include\vcruntime.h(310,47):
note: expanded from macro '_CRT_DEPRECATE_TEXT'
#define _CRT_DEPRECATE_TEXT(_Text) __declspec(deprecated(_Text))
                                              ^
xcpt4u.c(2776,14): warning: '_controlfp' is deprecated: This function or
variable may be unsafe. Consider using _controlfp_s instead. To disable
deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
[-Wdeprecated-declarations]
  _controlfp(_controlfp(0, 0) & ~EM_OVERFLOW, _MCW_EM);
             ^
C:\Program Files (x86)\Windows
Kits\10\Include\10.0.19041.0\ucrt\float.h(236,27): note: '_controlfp' has been
explicitly marked deprecated here
_CRT_MANAGED_FP_DEPRECATE _CRT_INSECURE_DEPRECATE(_controlfp_s)
                          ^
C:\Program Files (x86)\Microsoft Visual
Studio\2019\Professional\VC\Tools\MSVC\14.29.30037\include\vcruntime.h(320,55):
note: expanded from macro '_CRT_INSECURE_DEPRECATE'
        #define _CRT_INSECURE_DEPRECATE(_Replacement) _CRT_DEPRECATE_TEXT(    \
                                                      ^
C:\Program Files (x86)\Microsoft Visual
Studio\2019\Professional\VC\Tools\MSVC\14.29.30037\include\vcruntime.h(310,47):
note: expanded from macro '_CRT_DEPRECATE_TEXT'
#define _CRT_DEPRECATE_TEXT(_Text) __declspec(deprecated(_Text))
                                              ^
xcpt4u.c(2791,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(2803,3): warning: '_controlfp' is deprecated: This function or
variable may be unsafe. Consider using _controlfp_s instead. To disable
deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
[-Wdeprecated-declarations]
  _controlfp(_controlfp(0, 0) | EM_OVERFLOW, 0xfffff);
  ^
C:\Program Files (x86)\Windows
Kits\10\Include\10.0.19041.0\ucrt\float.h(236,27): note: '_controlfp' has been
explicitly marked deprecated here
_CRT_MANAGED_FP_DEPRECATE _CRT_INSECURE_DEPRECATE(_controlfp_s)
                          ^
C:\Program Files (x86)\Microsoft Visual
Studio\2019\Professional\VC\Tools\MSVC\14.29.30037\include\vcruntime.h(320,55):
note: expanded from macro '_CRT_INSECURE_DEPRECATE'
        #define _CRT_INSECURE_DEPRECATE(_Replacement) _CRT_DEPRECATE_TEXT(    \
                                                      ^
C:\Program Files (x86)\Microsoft Visual
Studio\2019\Professional\VC\Tools\MSVC\14.29.30037\include\vcruntime.h(310,47):
note: expanded from macro '_CRT_DEPRECATE_TEXT'
#define _CRT_DEPRECATE_TEXT(_Text) __declspec(deprecated(_Text))
                                              ^
xcpt4u.c(2803,14): warning: '_controlfp' is deprecated: This function or
variable may be unsafe. Consider using _controlfp_s instead. To disable
deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
[-Wdeprecated-declarations]
  _controlfp(_controlfp(0, 0) | EM_OVERFLOW, 0xfffff);
             ^
C:\Program Files (x86)\Windows
Kits\10\Include\10.0.19041.0\ucrt\float.h(236,27): note: '_controlfp' has been
explicitly marked deprecated here
_CRT_MANAGED_FP_DEPRECATE _CRT_INSECURE_DEPRECATE(_controlfp_s)
                          ^
C:\Program Files (x86)\Microsoft Visual
Studio\2019\Professional\VC\Tools\MSVC\14.29.30037\include\vcruntime.h(320,55):
note: expanded from macro '_CRT_INSECURE_DEPRECATE'
        #define _CRT_INSECURE_DEPRECATE(_Replacement) _CRT_DEPRECATE_TEXT(    \
                                                      ^
C:\Program Files (x86)\Microsoft Visual
Studio\2019\Professional\VC\Tools\MSVC\14.29.30037\include\vcruntime.h(310,47):
note: expanded from macro '_CRT_DEPRECATE_TEXT'
#define _CRT_DEPRECATE_TEXT(_Text) __declspec(deprecated(_Text))
                                              ^
xcpt4u.c(2823,7): error: too many arguments to function call, expected 1, have
4
      RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xcpt4u.c(24,47): note: expanded from macro 'RtlRaiseStatus'
#define RtlRaiseStatus(x) RaiseException((x), 0, 0, NULL)
                          ~~~~~~~~~~~~~~      ^~~~~~~~~~
C:\Program Files (x86)\Windows
Kits\10\Include\10.0.19041.0\um\winnt.h(19772,1): note: 'RaiseException'
declared here
RtlRaiseException(
^
xcpt4u.c(26,3): note: expanded from macro 'RtlRaiseException'
  RaiseException((x)->ExceptionCode, (x)->ExceptionFlags,                     
\
  ^
xcpt4u.c(2829,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(2845,7): error: too many arguments to function call, expected 1, have
4
      RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xcpt4u.c(24,47): note: expanded from macro 'RtlRaiseStatus'
#define RtlRaiseStatus(x) RaiseException((x), 0, 0, NULL)
                          ~~~~~~~~~~~~~~      ^~~~~~~~~~
C:\Program Files (x86)\Windows
Kits\10\Include\10.0.19041.0\um\winnt.h(19772,1): note: 'RaiseException'
declared here
RtlRaiseException(
^
xcpt4u.c(26,3): note: expanded from macro 'RtlRaiseException'
  RaiseException((x)->ExceptionCode, (x)->ExceptionFlags,                     
\
  ^
xcpt4u.c(2849,7): error: too many arguments to function call, expected 1, have
4
      RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xcpt4u.c(24,47): note: expanded from macro 'RtlRaiseStatus'
#define RtlRaiseStatus(x) RaiseException((x), 0, 0, NULL)
                          ~~~~~~~~~~~~~~      ^~~~~~~~~~
C:\Program Files (x86)\Windows
Kits\10\Include\10.0.19041.0\um\winnt.h(19772,1): note: 'RaiseException'
declared here
RtlRaiseException(
^
xcpt4u.c(26,3): note: expanded from macro 'RtlRaiseException'
  RaiseException((x)->ExceptionCode, (x)->ExceptionFlags,                     
\
  ^
xcpt4u.c(2855,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(2881,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(2909,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(2942,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(2956,7): error: too many arguments to function call, expected 1, have
4
      RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xcpt4u.c(24,47): note: expanded from macro 'RtlRaiseStatus'
#define RtlRaiseStatus(x) RaiseException((x), 0, 0, NULL)
                          ~~~~~~~~~~~~~~      ^~~~~~~~~~
C:\Program Files (x86)\Windows
Kits\10\Include\10.0.19041.0\um\winnt.h(19772,1): note: 'RaiseException'
declared here
RtlRaiseException(
^
xcpt4u.c(26,3): note: expanded from macro 'RtlRaiseException'
  RaiseException((x)->ExceptionCode, (x)->ExceptionFlags,                     
\
  ^
xcpt4u.c(2969,7): error: too many arguments to function call, expected 1, have
4
      RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xcpt4u.c(24,47): note: expanded from macro 'RtlRaiseStatus'
#define RtlRaiseStatus(x) RaiseException((x), 0, 0, NULL)
                          ~~~~~~~~~~~~~~      ^~~~~~~~~~
C:\Program Files (x86)\Windows
Kits\10\Include\10.0.19041.0\um\winnt.h(19772,1): note: 'RaiseException'
declared here
RtlRaiseException(
^
xcpt4u.c(26,3): note: expanded from macro 'RtlRaiseException'
  RaiseException((x)->ExceptionCode, (x)->ExceptionFlags,                     
\
  ^
xcpt4u.c(2975,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(2995,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(3009,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(3023,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(3037,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(3051,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(3065,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(3079,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(3093,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(3107,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(3121,36): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed, count = %d\n", Counter);
                            ~~     ^~~~~~~
                            %ld
xcpt4u.c(3140,21): warning: 'GetVersion' is deprecated
[-Wdeprecated-declarations]
  if (LOBYTE(LOWORD(GetVersion())) < 6) {
                    ^
C:\Program Files (x86)\Windows
Kits\10\Include\10.0.19041.0\um\sysinfoapi.h(159,1): note: 'GetVersion' has
been explicitly marked deprecated here
NOT_BUILD_WINDOWS_DEPRECATE
^
C:\Program Files (x86)\Windows
Kits\10\Include\10.0.19041.0\um\sysinfoapi.h(37,49): note: expanded from macro
'NOT_BUILD_WINDOWS_DEPRECATE'
# define NOT_BUILD_WINDOWS_DEPRECATE __declspec(deprecated)
                                                ^
xcpt4u.c(3157,31): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
      printf("failed  %d \n", Counter);
                      ~~      ^~~~~~~
                      %ld
xcpt4u.c(3171,10): warning: incompatible pointer types passing 'LONG *' (aka
'long *') to parameter of type 'int *' [-Wincompatible-pointer-types]
  Test81(&Counter);
         ^~~~~~~~
xcpt4u.c(576,18): note: passing argument to parameter 'pCounter' here
void Test81(int *pCounter) {
                 ^
xcpt4u.c(3173,29): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed  %d \n", Counter);
                    ~~      ^~~~~~~
                    %ld
xcpt4u.c(3221,27): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed %d\n", Counter);
                   ~~     ^~~~~~~
                   %ld
xcpt4u.c(3231,27): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed %d\n", Counter);
                   ~~     ^~~~~~~
                   %ld
xcpt4u.c(3241,27): warning: format specifies type 'int' but the argument has
type 'LONG' (aka 'long') [-Wformat]
    printf("failed %d\n", Counter);
                   ~~     ^~~~~~~
                   %ld
xcpt4u.c(3252,3): error: non-void function 'main' should return a value
[-Wreturn-type]
  return;
  ^
xcpt4u.c(3255,9): warning: '#pragma optimize' is not supported
[-Wignored-pragma-optimize]
#pragma optimize("a", off)
        ^
xcpt4u.c(1392,7): warning: jump out of __finally block has undefined behavior
[-Wjump-seh-finally]
      goto t12;
      ^
xcpt4u.c(1334,7): warning: jump out of __finally block has undefined behavior
[-Wjump-seh-finally]
      goto t10;
      ^
xcpt4u.c(3260,3): error: too many arguments to function call, expected 1, have
4
  RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
xcpt4u.c(24,47): note: expanded from macro 'RtlRaiseStatus'
#define RtlRaiseStatus(x) RaiseException((x), 0, 0, NULL)
                          ~~~~~~~~~~~~~~      ^~~~~~~~~~
C:\Program Files (x86)\Windows
Kits\10\Include\10.0.19041.0\um\winnt.h(19772,1): note: 'RaiseException'
declared here
RtlRaiseException(
^
xcpt4u.c(26,3): note: expanded from macro 'RtlRaiseException'
  RaiseException((x)->ExceptionCode, (x)->ExceptionFlags,                     
\
  ^
xcpt4u.c(3264,9): warning: '#pragma optimize' is not supported
[-Wignored-pragma-optimize]
#pragma optimize("", on)
        ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
121 warnings and 20 errors generated.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20210625/9e32b229/attachment-0001.html>


More information about the llvm-bugs mailing list