diff options
author | qwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524> | 2007-06-28 07:00:39 +0000 |
---|---|---|
committer | qwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524> | 2007-06-28 07:00:39 +0000 |
commit | 3eb9473ea9a949badfe06ae61d2d3fcfa53651c7 (patch) | |
tree | e9d8c368dbb1e58794b2c00acefe4bbad270f8c4 /EdkCompatibilityPkg/Sample/Tools/Source/VcCheck/VcCheck.c | |
parent | 30d4a0c7ec19938196b1308006b990e0945150da (diff) | |
download | edk2-platforms-3eb9473ea9a949badfe06ae61d2d3fcfa53651c7.tar.xz |
Add in the 1st version of ECP.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2832 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'EdkCompatibilityPkg/Sample/Tools/Source/VcCheck/VcCheck.c')
-rw-r--r-- | EdkCompatibilityPkg/Sample/Tools/Source/VcCheck/VcCheck.c | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/EdkCompatibilityPkg/Sample/Tools/Source/VcCheck/VcCheck.c b/EdkCompatibilityPkg/Sample/Tools/Source/VcCheck/VcCheck.c new file mode 100644 index 0000000000..32f1c33b8c --- /dev/null +++ b/EdkCompatibilityPkg/Sample/Tools/Source/VcCheck/VcCheck.c @@ -0,0 +1,121 @@ +/*++
+
+Copyright (c) 2004, Intel Corporation
+All rights reserved. This program and the accompanying materials
+are licensed and made available under the terms and conditions of the BSD License
+which accompanies this distribution. The full text of the license may be found at
+http://opensource.org/licenses/bsd-license.php
+
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+Module Name:
+
+ VcCheck.c
+
+Abstract:
+
+ We have found problems with the Visual C++ SP4 and the /O1 flag.
+ If this tests ask a question you have the wrong version of Visual C++
+ on your system
+
+ This test assumes the tools are being compiled with the same complier
+ as the Tiano code.
+
+ Please see $(EFI_SOURCE)\EFI2.0 Developer's Manual.doc to get the
+ correct version of Visual C++
+
+--*/
+
+#include <stdio.h>
+
+_int16 gGloba16;
+
+int
+CheckLostCode (
+ int Value
+ )
+/*++
+
+Routine Description:
+ This routine is used to test for compiler isseus with /O1.
+ If the /O1 compiler option, and C2.dll is got from Visual C++ SP5
+ (version: 6.00.8168.0), the assember codes after default branch will be
+ losted. (Execute "cl Visual Ccheck.c /O1 /FAsc" to get detail information)
+
+Arguments:
+ Value - Test case
+
+Returns:
+ Test to see if comiler error is present.
+
+--*/
+{
+ switch (Value) {
+ case 0:
+ break;
+
+ default:
+ _asm
+ {
+ mov bx, 1
+ mov gGloba16, bx
+ }
+
+ return 1;
+ }
+
+ _asm
+ {
+ mov bx, 0
+ mov gGloba16, bx
+ }
+
+ return 0;
+}
+
+int
+main (
+ void
+ )
+/*++
+
+Routine Description:
+ This utility is checking for a known Visual C++ compiler issues. To remove this
+ question from the build follow the steps in the developers manual.
+
+Arguments:
+ NONE
+
+Returns:
+ 0 - Compiler version is O.K.
+ 1 - Compiler version is Bad
+
+--*/
+{
+ int result;
+ char select;
+
+ gGloba16 = 0xFF;
+ result = 0;
+
+ CheckLostCode (0);
+ result += (gGloba16 == 0) ? 0 : 1;
+
+ CheckLostCode (1);
+ result += (gGloba16 == 1) ? 0 : 1;
+
+ if (result != 0) {
+ printf ("Warning: C2.dll is incorrect.\n Please see $(EFI_SOURCE)\\EFI2.0 Developer's Manual.doc for corrective action.\n");
+ printf ("Would you want to continue?(Y/N)");
+
+ scanf ("%c", &select);
+ if ((select == 'Y') || (select == 'y')) {
+ return 0;
+ } else {
+ return 1;
+ }
+ }
+
+ return 0;
+}
|