Print this page
12257 resync smatch to 0.6.1-rc1-il-4


 301 int Wvla = 1;
 302 
 303 int dump_macro_defs = 0;
 304 int dump_macros_only = 0;
 305 
 306 int dbg_compound = 0;
 307 int dbg_dead = 0;
 308 int dbg_domtree = 0;
 309 int dbg_entry = 0;
 310 int dbg_ir = 0;
 311 int dbg_postorder = 0;
 312 
 313 unsigned long fdump_ir;
 314 int fmem_report = 0;
 315 unsigned long long fmemcpy_max_count = 100000;
 316 unsigned long fpasses = ~0UL;
 317 int funsigned_char = UNSIGNED_CHAR;
 318 
 319 int preprocess_only;
 320 
 321 static enum { STANDARD_C89,
 322               STANDARD_C94,
 323               STANDARD_C99,
 324               STANDARD_C11,
 325               STANDARD_GNU11,
 326               STANDARD_GNU89,
 327               STANDARD_GNU99, } standard = STANDARD_GNU89;
 328 
 329 int arch_m64 = ARCH_M64_DEFAULT;
 330 int arch_msize_long = 0;
 331 int arch_big_endian = ARCH_BIG_ENDIAN;
 332 int arch_mach = MACH_NATIVE;
 333 
 334 
 335 #define CMDLINE_INCLUDE 20
 336 static int cmdline_include_nr = 0;
 337 static char *cmdline_include[CMDLINE_INCLUDE];
 338 
 339 
 340 void add_pre_buffer(const char *fmt, ...)
 341 {
 342         va_list args;
 343         unsigned int size;
 344         struct token *begin, *end;
 345         char buffer[4096];
 346 
 347         va_start(args, fmt);


1296         predefined_sizeof("FLOAT", "", bits_in_float);
1297         predefined_sizeof("DOUBLE", "", bits_in_double);
1298         predefined_sizeof("LONG_DOUBLE", "", bits_in_longdouble);
1299 
1300         predefine("__ORDER_LITTLE_ENDIAN__", 1, "1234");
1301         predefine("__ORDER_BIG_ENDIAN__", 1, "4321");
1302         predefine("__ORDER_PDP_ENDIAN__", 1, "3412");
1303         if (arch_big_endian) {
1304                 predefine("__BIG_ENDIAN__", 1, "1");
1305                 predefine("__BYTE_ORDER__", 1, "__ORDER_BIG_ENDIAN__");
1306         } else {
1307                 predefine("__LITTLE_ENDIAN__", 1, "1");
1308                 predefine("__BYTE_ORDER__", 1, "__ORDER_LITTLE_ENDIAN__");
1309         }
1310 
1311         if (optimize_level)
1312                 predefine("__OPTIMIZE__", 0, "1");
1313         if (optimize_size)
1314                 predefine("__OPTIMIZE_SIZE__", 0, "1");
1315 


1316         // Temporary hacks
1317         predefine("__extension__", 0, NULL);
1318         predefine("__pragma__", 0, NULL);
1319 
1320         switch (arch_m64) {
1321         case ARCH_LP32:
1322                 break;
1323         case ARCH_X32:
1324                 predefine("__ILP32__", 1, "1");
1325                 predefine("_ILP32", 1, "1");
1326                 break;
1327         case ARCH_LP64:
1328                 predefine("__LP64__", 1, "1");
1329                 predefine("__LP64", 1, "1");
1330                 predefine("_LP64", 1, "1");
1331                 break;
1332         case ARCH_LLP64:
1333                 predefine("__LLP64__", 1, "1");
1334                 break;
1335         }
1336 
1337         switch (arch_mach) {
1338         case MACH_ARM64:
1339                 predefine("__aarch64__", 1, "1");
1340                 break;
1341         case MACH_ARM:
1342                 predefine("__arm__", 1, "1");
1343                 break;
1344         case MACH_M68K:
1345                 predefine("__m68k__", 1, "1");
1346                 break;
1347         case MACH_MIPS64:
1348                 if (arch_m64 == ARCH_LP64)
1349                         predefine("__mips64", 1, "64");


1372                 predefine("__riscv", 1, "1");
1373                 predefine("__riscv_xlen", 1, "%d", ptr_ctype.bit_size);
1374                 break;
1375         case MACH_S390X:
1376                 predefine("__zarch__", 1, "1");
1377                 predefine("__s390x__", 1, "1");
1378                 predefine("__s390__", 1, "1");
1379                 break;
1380         case MACH_SPARC64:
1381                 if (arch_m64 == ARCH_LP64) {
1382                         predefine("__sparc_v9__", 1, "1");
1383                         predefine("__sparcv9__", 1, "1");
1384                         predefine("__sparcv9", 1, "1");
1385                         predefine("__sparc64__", 1, "1");
1386                         predefine("__arch64__", 1, "1");
1387                 }
1388                 /* fall-through */
1389         case MACH_SPARC32:
1390                 predefine("__sparc__", 1, "1");
1391                 predefine("__sparc", 1, "1");

1392                 break;
1393         case MACH_X86_64:
1394                 if (arch_m64 != ARCH_LP32) {
1395                         predefine("__x86_64__", 1, "1");
1396                         predefine("__x86_64", 1, "1");


1397                         break;
1398                 }
1399                 /* fall-through */
1400         case MACH_I386:
1401                 predefine("__i386__", 1, "1");
1402                 predefine("__i386", 1, "1");
1403                 predefine("i386", 1, "1");
1404                 break;
1405         }
1406 
1407         predefine("__PRAGMA_REDEFINE_EXTNAME", 1, "1");
1408 
1409 #ifdef  __sun
1410         predefine("__unix__", 1, "1");
1411         predefine("__unix", 1, "1");
1412         predefine("unix", 1, "1");




1413         predefine("__sun__", 1, "1");
1414         predefine("__sun", 1, "1");
1415         predefine("sun", 1, "1");
1416         predefine("__svr4__", 1, "1");
1417 #endif

1418 }
1419 
1420 static void create_builtin_stream(void)
1421 {
1422         // Temporary hack
1423         add_pre_buffer("#define _Pragma(x)\n");
1424 
1425         /* add the multiarch include directories, if any */
1426         if (multiarch_dir && *multiarch_dir) {
1427                 add_pre_buffer("#add_system \"/usr/include/%s\"\n", multiarch_dir);
1428                 add_pre_buffer("#add_system \"/usr/local/include/%s\"\n", multiarch_dir);
1429         }
1430 
1431         /* We add compiler headers path here because we have to parse
1432          * the arguments to get it, falling back to default. */
1433         add_pre_buffer("#add_system \"%s/include\"\n", gcc_base_dir);
1434         add_pre_buffer("#add_system \"%s/include-fixed\"\n", gcc_base_dir);
1435 
1436         add_pre_buffer("#define __has_builtin(x) 0\n");
1437         add_pre_buffer("#define __has_attribute(x) 0\n");




 301 int Wvla = 1;
 302 
 303 int dump_macro_defs = 0;
 304 int dump_macros_only = 0;
 305 
 306 int dbg_compound = 0;
 307 int dbg_dead = 0;
 308 int dbg_domtree = 0;
 309 int dbg_entry = 0;
 310 int dbg_ir = 0;
 311 int dbg_postorder = 0;
 312 
 313 unsigned long fdump_ir;
 314 int fmem_report = 0;
 315 unsigned long long fmemcpy_max_count = 100000;
 316 unsigned long fpasses = ~0UL;
 317 int funsigned_char = UNSIGNED_CHAR;
 318 
 319 int preprocess_only;
 320 
 321 enum standard standard = STANDARD_GNU89;






 322 
 323 int arch_m64 = ARCH_M64_DEFAULT;
 324 int arch_msize_long = 0;
 325 int arch_big_endian = ARCH_BIG_ENDIAN;
 326 int arch_mach = MACH_NATIVE;
 327 
 328 
 329 #define CMDLINE_INCLUDE 20
 330 static int cmdline_include_nr = 0;
 331 static char *cmdline_include[CMDLINE_INCLUDE];
 332 
 333 
 334 void add_pre_buffer(const char *fmt, ...)
 335 {
 336         va_list args;
 337         unsigned int size;
 338         struct token *begin, *end;
 339         char buffer[4096];
 340 
 341         va_start(args, fmt);


1290         predefined_sizeof("FLOAT", "", bits_in_float);
1291         predefined_sizeof("DOUBLE", "", bits_in_double);
1292         predefined_sizeof("LONG_DOUBLE", "", bits_in_longdouble);
1293 
1294         predefine("__ORDER_LITTLE_ENDIAN__", 1, "1234");
1295         predefine("__ORDER_BIG_ENDIAN__", 1, "4321");
1296         predefine("__ORDER_PDP_ENDIAN__", 1, "3412");
1297         if (arch_big_endian) {
1298                 predefine("__BIG_ENDIAN__", 1, "1");
1299                 predefine("__BYTE_ORDER__", 1, "__ORDER_BIG_ENDIAN__");
1300         } else {
1301                 predefine("__LITTLE_ENDIAN__", 1, "1");
1302                 predefine("__BYTE_ORDER__", 1, "__ORDER_LITTLE_ENDIAN__");
1303         }
1304 
1305         if (optimize_level)
1306                 predefine("__OPTIMIZE__", 0, "1");
1307         if (optimize_size)
1308                 predefine("__OPTIMIZE_SIZE__", 0, "1");
1309 
1310         predefine("__PRAGMA_REDEFINE_EXTNAME", 1, "1");
1311 
1312         // Temporary hacks
1313         predefine("__extension__", 0, NULL);
1314         predefine("__pragma__", 0, NULL);
1315 
1316         switch (arch_m64) {
1317         case ARCH_LP32:
1318                 break;
1319         case ARCH_X32:
1320                 predefine("__ILP32__", 1, "1");
1321                 predefine("_ILP32", 1, "1");
1322                 break;
1323         case ARCH_LP64:
1324                 predefine("__LP64__", 1, "1");

1325                 predefine("_LP64", 1, "1");
1326                 break;
1327         case ARCH_LLP64:
1328                 predefine("__LLP64__", 1, "1");
1329                 break;
1330         }
1331 
1332         switch (arch_mach) {
1333         case MACH_ARM64:
1334                 predefine("__aarch64__", 1, "1");
1335                 break;
1336         case MACH_ARM:
1337                 predefine("__arm__", 1, "1");
1338                 break;
1339         case MACH_M68K:
1340                 predefine("__m68k__", 1, "1");
1341                 break;
1342         case MACH_MIPS64:
1343                 if (arch_m64 == ARCH_LP64)
1344                         predefine("__mips64", 1, "64");


1367                 predefine("__riscv", 1, "1");
1368                 predefine("__riscv_xlen", 1, "%d", ptr_ctype.bit_size);
1369                 break;
1370         case MACH_S390X:
1371                 predefine("__zarch__", 1, "1");
1372                 predefine("__s390x__", 1, "1");
1373                 predefine("__s390__", 1, "1");
1374                 break;
1375         case MACH_SPARC64:
1376                 if (arch_m64 == ARCH_LP64) {
1377                         predefine("__sparc_v9__", 1, "1");
1378                         predefine("__sparcv9__", 1, "1");
1379                         predefine("__sparcv9", 1, "1");
1380                         predefine("__sparc64__", 1, "1");
1381                         predefine("__arch64__", 1, "1");
1382                 }
1383                 /* fall-through */
1384         case MACH_SPARC32:
1385                 predefine("__sparc__", 1, "1");
1386                 predefine("__sparc", 1, "1");
1387                 predefine_nostd("sparc");
1388                 break;
1389         case MACH_X86_64:
1390                 if (arch_m64 != ARCH_LP32) {
1391                         predefine("__x86_64__", 1, "1");
1392                         predefine("__x86_64", 1, "1");
1393                         predefine("__amd64__", 1, "1");
1394                         predefine("__amd64", 1, "1");
1395                         break;
1396                 }
1397                 /* fall-through */
1398         case MACH_I386:
1399                 predefine("__i386__", 1, "1");
1400                 predefine("__i386", 1, "1");
1401                 predefine_nostd("i386");
1402                 break;
1403         }
1404 
1405 #if defined(__unix__)


1406         predefine("__unix__", 1, "1");
1407         predefine("__unix", 1, "1");
1408         predefine_nostd("unix");
1409 #endif
1410 
1411 
1412 #if defined(__sun__) || defined(__sun)
1413         predefine("__sun__", 1, "1");
1414         predefine("__sun", 1, "1");
1415         predefine_nostd("sun");
1416         predefine("__svr4__", 1, "1");
1417 #endif
1418 
1419 }
1420 
1421 static void create_builtin_stream(void)
1422 {
1423         // Temporary hack
1424         add_pre_buffer("#define _Pragma(x)\n");
1425 
1426         /* add the multiarch include directories, if any */
1427         if (multiarch_dir && *multiarch_dir) {
1428                 add_pre_buffer("#add_system \"/usr/include/%s\"\n", multiarch_dir);
1429                 add_pre_buffer("#add_system \"/usr/local/include/%s\"\n", multiarch_dir);
1430         }
1431 
1432         /* We add compiler headers path here because we have to parse
1433          * the arguments to get it, falling back to default. */
1434         add_pre_buffer("#add_system \"%s/include\"\n", gcc_base_dir);
1435         add_pre_buffer("#add_system \"%s/include-fixed\"\n", gcc_base_dir);
1436 
1437         add_pre_buffer("#define __has_builtin(x) 0\n");
1438         add_pre_buffer("#define __has_attribute(x) 0\n");