Changes in / [1eeab94:f851015]
- Location:
- src
- Files:
-
- 5 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/parser.yy
r1eeab94 rf851015 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu May 25 15:21:59201713 // Update Count : 23 9812 // Last Modified On : Thu May 18 18:06:17 2017 13 // Update Count : 2338 14 14 // 15 15 … … 159 159 } 160 160 161 %type<tok> identifier no_ attr_identifierzero_one162 %type<tok> identifier_or_type_name no_attr_identifier_or_type_name attr_name161 %type<tok> identifier no_01_identifier no_attr_identifier zero_one 162 %type<tok> identifier_or_type_name no_attr_identifier_or_type_name no_01_identifier_or_type_name attr_name 163 163 %type<constant> string_literal 164 164 %type<str> string_literal_list … … 207 207 %type<en> bit_subrange_size_opt bit_subrange_size 208 208 209 %type<decl> basic_declaration_specifier basic_type_name basic_type_specifier direct_type indirect_type209 %type<decl> basic_declaration_specifier basic_type_name basic_type_specifier direct_type_name indirect_type_name 210 210 211 211 %type<decl> trait_declaration trait_declaration_list trait_declaring_list trait_specifier … … 261 261 %type<decl> type_declarator type_declarator_name type_declaring_list 262 262 263 %type<decl> type_declaration_specifier type_type_specifier type_name typegen_name 264 %type<decl> typedef typedef_declaration typedef_expression 263 %type<decl> typedef typedef_type_specifier typedef_declaration typedef_declaration_specifier typedef_expression 265 264 266 265 %type<decl> variable_type_redeclarator type_ptr type_array type_function 267 266 268 267 %type<decl> type_parameter_redeclarator type_parameter_ptr type_parameter_array type_parameter_function 269 270 %type<decl> type type_no_function 271 %type<decl> type_parameter type_parameter_list type_initializer_opt 272 273 %type<en> type_list 268 %type<decl> typegen_declaration_specifier typegen_type_specifier typegen_name 269 270 %type<decl> type_name type_name_no_function 271 %type<decl> type_parameter type_parameter_list 272 273 %type<en> type_name_list 274 274 275 275 %type<decl> type_qualifier type_qualifier_name type_qualifier_list_opt type_qualifier_list … … 351 351 IDENTIFIER 352 352 | ATTR_IDENTIFIER // CFA 353 | zero_one // CFA 354 ; 355 356 no_01_identifier: 357 IDENTIFIER 358 | ATTR_IDENTIFIER // CFA 353 359 ; 354 360 355 361 no_attr_identifier: 356 362 IDENTIFIER 363 | zero_one // CFA 357 364 ; 358 365 … … 360 367 ZERO 361 368 | ONE 362 369 ; 363 370 364 371 string_literal: … … 388 395 | '(' compound_statement ')' // GCC, lambda expression 389 396 { $$ = new ExpressionNode( build_valexpr( $2 ) ); } 390 | primary_expression '{' argument_expression_list '}' // CFA , constructor call397 | primary_expression '{' argument_expression_list '}' // CFA 391 398 { 392 399 Token fn; … … 394 401 $$ = new ExpressionNode( new ConstructorExpr( build_func( new ExpressionNode( build_varref( fn ) ), (ExpressionNode *)( $1 )->set_last( $3 ) ) ) ); 395 402 } 396 | type_name '.' no_attr_identifier // CFA, nested type397 { $$ = nullptr; } // FIX ME398 | type_name '.' '[' push field_list pop ']' // CFA, nested type / tuple field selector399 { $$ = nullptr; } // FIX ME400 403 ; 401 404 … … 428 431 | postfix_expression DECR 429 432 { $$ = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, $1 ) ); } 430 | '(' type_n o_function ')' '{' initializer_list comma_opt '}' // C99, compound-literal433 | '(' type_name_no_function ')' '{' initializer_list comma_opt '}' // C99, compound-literal 431 434 { $$ = new ExpressionNode( build_compoundLiteral( $2, new InitializerNode( $5, true ) ) ); } 432 435 | '^' primary_expression '{' argument_expression_list '}' // CFA … … 480 483 | no_attr_identifier fraction_constants 481 484 { 482 $$ = new ExpressionNode( build_field_name_fraction_constants( build_varref( $1 ), $2 ) );483 }484 | zero_one fraction_constants485 {486 $$ = new ExpressionNode( build_field_name_fraction_constants( build_constantZeroOne( *$1 ), $2 ) );485 if( (*$1) == "0" || (*$1) == "1" ) { 486 $$ = new ExpressionNode( build_field_name_fraction_constants( build_constantZeroOne( *$1 ), $2 ) ); 487 } else { 488 $$ = new ExpressionNode( build_field_name_fraction_constants( build_varref( $1 ), $2 ) ); 489 } 487 490 } 488 491 ; … … 532 535 | SIZEOF unary_expression 533 536 { $$ = new ExpressionNode( build_sizeOfexpr( $2 ) ); } 534 | SIZEOF '(' type_n o_function ')'537 | SIZEOF '(' type_name_no_function ')' 535 538 { $$ = new ExpressionNode( build_sizeOftype( $3 ) ); } 536 539 | ALIGNOF unary_expression // GCC, variable alignment 537 540 { $$ = new ExpressionNode( build_alignOfexpr( $2 ) ); } 538 | ALIGNOF '(' type_n o_function ')' // GCC, type alignment541 | ALIGNOF '(' type_name_no_function ')' // GCC, type alignment 539 542 { $$ = new ExpressionNode( build_alignOftype( $3 ) ); } 540 | OFFSETOF '(' type_n o_function ',' no_attr_identifier ')'543 | OFFSETOF '(' type_name_no_function ',' no_attr_identifier ')' 541 544 { $$ = new ExpressionNode( build_offsetOf( $3, build_varref( $5 ) ) ); } 542 545 | ATTR_IDENTIFIER … … 544 547 | ATTR_IDENTIFIER '(' argument_expression ')' 545 548 { $$ = new ExpressionNode( build_attrexpr( build_varref( $1 ), $3 ) ); } 546 | ATTR_IDENTIFIER '(' type ')'549 | ATTR_IDENTIFIER '(' type_name ')' 547 550 { $$ = new ExpressionNode( build_attrtype( build_varref( $1 ), $3 ) ); } 548 551 // | ANDAND IDENTIFIER // GCC, address of label … … 566 569 cast_expression: 567 570 unary_expression 568 | '(' type_n o_function ')' cast_expression571 | '(' type_name_no_function ')' cast_expression 569 572 { $$ = new ExpressionNode( build_cast( $2, $4 ) ); } 570 // | '(' type_n o_function ')' tuple573 // | '(' type_name_no_function ')' tuple 571 574 // { $$ = new ExpressionNode( build_cast( $2, $4 ) ); } 572 575 ; … … 655 658 | logical_OR_expression '?' /* empty */ ':' conditional_expression // GCC, omitted first operand 656 659 { $$ = new ExpressionNode( build_cond( $1, $1, $4 ) ); } 660 // | logical_OR_expression '?' comma_expression ':' tuple // CFA, tuple expression 661 // { $$ = new ExpressionNode( build_cond( $1, $3, $5 ) ); } 657 662 ; 658 663 … … 666 671 | unary_expression assignment_operator assignment_expression 667 672 { $$ = new ExpressionNode( build_binary_ptr( $2, $1, $3 ) ); } 673 // | tuple assignment_opt // CFA, tuple expression 674 // { $$ = ( $2 == 0 ) ? $1 : new ExpressionNode( build_binary_ptr( OperKinds::Assign, $1, $2 ) ); } 668 675 ; 669 676 … … 1345 1352 basic_declaration_specifier 1346 1353 | sue_declaration_specifier 1347 | type_declaration_specifier 1354 | typedef_declaration_specifier 1355 | typegen_declaration_specifier 1348 1356 ; 1349 1357 … … 1356 1364 basic_declaration_specifier 1357 1365 | sue_declaration_specifier_nobody 1358 | type_declaration_specifier 1366 | typedef_declaration_specifier 1367 | typegen_declaration_specifier 1359 1368 ; 1360 1369 … … 1362 1371 basic_type_specifier 1363 1372 | sue_type_specifier 1364 | type_type_specifier 1373 | typedef_type_specifier 1374 | typegen_type_specifier 1365 1375 ; 1366 1376 … … 1373 1383 basic_type_specifier 1374 1384 | sue_type_specifier_nobody 1375 | type_type_specifier 1385 | typedef_type_specifier 1386 | typegen_type_specifier 1376 1387 ; 1377 1388 … … 1508 1519 1509 1520 basic_type_specifier: 1510 direct_type 1511 | type_qualifier_list_opt indirect_type type_qualifier_list_opt1521 direct_type_name 1522 | type_qualifier_list_opt indirect_type_name type_qualifier_list_opt 1512 1523 { $$ = $2->addQualifiers( $1 )->addQualifiers( $3 ); } 1513 1524 ; 1514 1525 1515 direct_type :1526 direct_type_name: 1516 1527 // A semantic check is necessary for conflicting type qualifiers. 1517 1528 basic_type_name 1518 1529 | type_qualifier_list basic_type_name 1519 1530 { $$ = $2->addQualifiers( $1 ); } 1520 | direct_type type_qualifier1521 { $$ = $1->addQualifiers( $2 ); } 1522 | direct_type basic_type_name1531 | direct_type_name type_qualifier 1532 { $$ = $1->addQualifiers( $2 ); } 1533 | direct_type_name basic_type_name 1523 1534 { $$ = $1->addType( $2 ); } 1524 1535 ; 1525 1536 1526 indirect_type :1527 TYPEOF '(' type ')'// GCC: typeof(x) y;1537 indirect_type_name: 1538 TYPEOF '(' type_name ')' // GCC: typeof(x) y; 1528 1539 { $$ = $3; } 1529 1540 | TYPEOF '(' comma_expression ')' // GCC: typeof(a+b) y; 1530 1541 { $$ = DeclarationNode::newTypeof( $3 ); } 1531 | ATTR_TYPEGENname '(' type ')'// CFA: e.g., @type(x) y;1542 | ATTR_TYPEGENname '(' type_name ')' // CFA: e.g., @type(x) y; 1532 1543 { $$ = DeclarationNode::newAttr( $1, $3 ); } 1533 1544 | ATTR_TYPEGENname '(' comma_expression ')' // CFA: e.g., @type(a+b) y; … … 1573 1584 ; 1574 1585 1575 type _declaration_specifier:1576 type _type_specifier1577 | declaration_qualifier_list type _type_specifier1586 typedef_declaration_specifier: 1587 typedef_type_specifier 1588 | declaration_qualifier_list typedef_type_specifier 1578 1589 { $$ = $2->addQualifiers( $1 ); } 1579 | type _declaration_specifier storage_class// remaining OBSOLESCENT (see 2)1580 { $$ = $1->addQualifiers( $2 ); } 1581 | type _declaration_specifier storage_class type_qualifier_list1590 | typedef_declaration_specifier storage_class // remaining OBSOLESCENT (see 2) 1591 { $$ = $1->addQualifiers( $2 ); } 1592 | typedef_declaration_specifier storage_class type_qualifier_list 1582 1593 { $$ = $1->addQualifiers( $2 )->addQualifiers( $3 ); } 1583 1594 ; 1584 1595 1585 type_type_specifier: // typedef types 1586 type_name 1587 | type_qualifier_list type_name 1588 { $$ = $2->addQualifiers( $1 ); } 1589 | type_type_specifier type_qualifier 1590 { $$ = $1->addQualifiers( $2 ); } 1591 ; 1592 1593 type_name: 1596 typedef_type_specifier: // typedef types 1594 1597 TYPEDEFname 1595 1598 { $$ = DeclarationNode::newFromTypedef( $1 ); } 1596 | '.' TYPEDEFname 1597 { $$ = DeclarationNode::newFromTypedef( $2 ); } // FIX ME 1598 | type_name '.' TYPEDEFname 1599 { $$ = DeclarationNode::newFromTypedef( $3 ); } // FIX ME 1600 | typegen_name 1601 | '.' typegen_name 1602 { $$ = $2; } // FIX ME 1603 | type_name '.' typegen_name 1604 { $$ = $3; } // FIX ME 1605 ; 1606 1607 typegen_name: // CFA 1608 TYPEGENname '(' type_list ')' 1609 { $$ = DeclarationNode::newFromTypeGen( $1, $3 ); } 1599 | type_qualifier_list TYPEDEFname 1600 { $$ = DeclarationNode::newFromTypedef( $2 )->addQualifiers( $1 ); } 1601 | typedef_type_specifier type_qualifier 1602 { $$ = $1->addQualifiers( $2 ); } 1610 1603 ; 1611 1604 … … 1631 1624 '{' field_declaration_list '}' 1632 1625 { $$ = DeclarationNode::newAggregate( $1, $3, nullptr, $6, true )->addQualifiers( $2 ); } 1633 | aggregate_key attribute_list_opt '(' type_ list ')' '{' field_declaration_list '}' // CFA1626 | aggregate_key attribute_list_opt '(' type_name_list ')' '{' field_declaration_list '}' // CFA 1634 1627 { $$ = DeclarationNode::newAggregate( $1, new string( DeclarationNode::anonymous.newName() ), $4, $7, false )->addQualifiers( $2 ); } 1635 1628 | aggregate_type_nobody … … 1637 1630 1638 1631 aggregate_type_nobody: // struct, union - {...} 1639 aggregate_key attribute_list_opt no_attr_identifier 1632 aggregate_key attribute_list_opt no_attr_identifier_or_type_name 1640 1633 { 1641 1634 typedefTable.makeTypedef( *$3 ); 1642 1635 $$ = DeclarationNode::newAggregate( $1, $3, nullptr, nullptr, false )->addQualifiers( $2 ); 1643 1636 } 1644 | aggregate_key attribute_list_opt TYPEDEFname 1645 { 1646 typedefTable.makeTypedef( *$3 ); 1647 $$ = DeclarationNode::newAggregate( $1, $3, nullptr, nullptr, false )->addQualifiers( $2 ); 1648 } 1649 | aggregate_key attribute_list_opt typegen_name // CFA 1637 | aggregate_key attribute_list_opt typegen_name // CFA, S/R conflict 1650 1638 { $$ = $3->addQualifiers( $2 ); } 1651 1639 ; … … 1885 1873 ; 1886 1874 1875 no_01_identifier_or_type_name: 1876 no_01_identifier 1877 | TYPEDEFname 1878 | TYPEGENname 1879 ; 1880 1887 1881 no_attr_identifier_or_type_name: 1888 1882 no_attr_identifier … … 1891 1885 ; 1892 1886 1893 type_n o_function:// sizeof, alignof, cast (constructor)1887 type_name_no_function: // sizeof, alignof, cast (constructor) 1894 1888 cfa_abstract_declarator_tuple // CFA 1895 1889 | type_specifier … … 1898 1892 ; 1899 1893 1900 type :// typeof, assertion1901 type_n o_function1894 type_name: // typeof, assertion 1895 type_name_no_function 1902 1896 | cfa_abstract_function // CFA 1903 1897 ; … … 1939 1933 designation: 1940 1934 designator_list ':' // C99, CFA uses ":" instead of "=" 1941 | no_attr_identifier ':'// GCC, field name1935 | no_attr_identifier_or_type_name ':' // GCC, field name 1942 1936 { $$ = new ExpressionNode( build_varref( $1 ) ); } 1943 1937 ; … … 1951 1945 1952 1946 designator: 1953 '.' no_attr_identifier 1947 '.' no_attr_identifier_or_type_name // C99, field name 1954 1948 { $$ = new ExpressionNode( build_varref( $2 ) ); } 1955 1949 | '[' push assignment_expression pop ']' // C99, single array element … … 1982 1976 // on type arguments of polymorphic functions. 1983 1977 1978 typegen_declaration_specifier: // CFA 1979 typegen_type_specifier 1980 | declaration_qualifier_list typegen_type_specifier 1981 { $$ = $2->addQualifiers( $1 ); } 1982 | typegen_declaration_specifier storage_class // remaining OBSOLESCENT (see 2) 1983 { $$ = $1->addQualifiers( $2 ); } 1984 | typegen_declaration_specifier storage_class type_qualifier_list 1985 { $$ = $1->addQualifiers( $2 )->addQualifiers( $3 ); } 1986 ; 1987 1988 typegen_type_specifier: // CFA 1989 typegen_name 1990 | type_qualifier_list typegen_name 1991 { $$ = $2->addQualifiers( $1 ); } 1992 | typegen_type_specifier type_qualifier 1993 { $$ = $1->addQualifiers( $2 ); } 1994 ; 1995 1996 typegen_name: // CFA 1997 TYPEGENname '(' type_name_list ')' 1998 { $$ = DeclarationNode::newFromTypeGen( $1, $3 ); } 1999 ; 2000 1984 2001 type_parameter_list: // CFA 1985 type_parameter type_initializer_opt1986 | type_parameter_list ',' type_parameter type_initializer_opt2002 type_parameter assignment_opt 2003 | type_parameter_list ',' type_parameter assignment_opt 1987 2004 { $$ = $1->appendList( $3 ); } 1988 ;1989 1990 type_initializer_opt: // CFA1991 // empty1992 { $$ = nullptr; }1993 | '=' type1994 { $$ = $2; }1995 2005 ; 1996 2006 … … 2022 2032 2023 2033 assertion: // CFA 2024 '|' no_attr_identifier_or_type_name '(' type_ list ')'2034 '|' no_attr_identifier_or_type_name '(' type_name_list ')' 2025 2035 { 2026 2036 typedefTable.openTrait( *$2 ); … … 2029 2039 | '|' '{' push trait_declaration_list '}' 2030 2040 { $$ = $4; } 2031 | '|' '(' push type_parameter_list pop ')' '{' push trait_declaration_list '}' '(' type_ list ')'2041 | '|' '(' push type_parameter_list pop ')' '{' push trait_declaration_list '}' '(' type_name_list ')' 2032 2042 { $$ = nullptr; } 2033 2043 ; 2034 2044 2035 type_ list:// CFA2036 type 2045 type_name_list: // CFA 2046 type_name 2037 2047 { $$ = new ExpressionNode( build_typevalue( $1 ) ); } 2038 2048 | assignment_expression 2039 | type_ list ',' type2049 | type_name_list ',' type_name 2040 2050 { $$ = (ExpressionNode *)( $1->set_last( new ExpressionNode( build_typevalue( $3 ) ) ) ); } 2041 | type_ list ',' assignment_expression2051 | type_name_list ',' assignment_expression 2042 2052 { $$ = (ExpressionNode *)( $1->set_last( $3 )); } 2043 2053 ; … … 2055 2065 type_declarator_name assertion_list_opt 2056 2066 { $$ = $1->addAssertions( $2 ); } 2057 | type_declarator_name assertion_list_opt '=' type 2067 | type_declarator_name assertion_list_opt '=' type_name 2058 2068 { $$ = $1->addAssertions( $2 )->addType( $4 ); } 2059 2069 ; … … 2065 2075 $$ = DeclarationNode::newTypeDecl( $1, 0 ); 2066 2076 } 2067 | no_ attr_identifier_or_type_name '(' push type_parameter_list pop ')'2077 | no_01_identifier_or_type_name '(' push type_parameter_list pop ')' 2068 2078 { 2069 2079 typedefTable.addToEnclosingScope( *$1, TypedefTable::TG ); … … 2091 2101 ; 2092 2102 2093 trait_declaration_list: 2103 trait_declaration_list: // CFA 2094 2104 trait_declaration 2095 2105 | trait_declaration_list push trait_declaration … … 2097 2107 ; 2098 2108 2099 trait_declaration: 2109 trait_declaration: // CFA 2100 2110 cfa_trait_declaring_list pop ';' 2101 2111 | trait_declaring_list pop ';' -
src/tests/Makefile.am
r1eeab94 rf851015 11 11 ## Created On : Sun May 31 09:08:15 2015 12 12 ## Last Modified By : Peter A. Buhr 13 ## Last Modified On : Thu May 25 14:39:15201714 ## Update Count : 4 313 ## Last Modified On : Sun May 14 14:43:48 2017 14 ## Update Count : 42 15 15 ############################################################################### 16 16 … … 36 36 37 37 .PHONY : list 38 EXTRA_PROGRAMS = fstream_test vector_test avl_test # build but do not install38 EXTRA_PROGRAMS = fstream_test vector_test avl_test constant0-1DP constant0-1ND constant0-1NDDP # build but do not install 39 39 40 40 fstream_test_SOURCES = fstream_test.c … … 59 59 .dummy : .dummy.c 60 60 ${CC} ${BUILD_FLAGS} -XCFA -n ${<} -o ${@} #don't use CFLAGS, this rule is not a real test 61 62 constant0-1DP : constant0-1.c 63 ${CC} ${CFLAGS} -DDUPS ${<} -o ${@} 64 65 constant0-1ND : constant0-1.c 66 ${CC} ${CFLAGS} -DNEWDECL ${<} -o ${@} 67 68 constant0-1NDDP : constant0-1.c 69 ${CC} ${CFLAGS} -DNEWDECL -DDUPS ${<} -o ${@} 61 70 62 71 dtor-early-exit-ERR1: dtor-early-exit.c -
src/tests/Makefile.in
r1eeab94 rf851015 39 39 @BUILD_CONCURRENCY_TRUE@am__append_1 = coroutine thread monitor 40 40 EXTRA_PROGRAMS = fstream_test$(EXEEXT) vector_test$(EXEEXT) \ 41 avl_test$(EXEEXT) 41 avl_test$(EXEEXT) constant0-1DP$(EXEEXT) \ 42 constant0-1ND$(EXEEXT) constant0-1NDDP$(EXEEXT) 42 43 subdir = src/tests 43 44 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in … … 55 56 avl_test_OBJECTS = $(am_avl_test_OBJECTS) 56 57 avl_test_LDADD = $(LDADD) 58 constant0_1DP_SOURCES = constant0-1DP.c 59 constant0_1DP_OBJECTS = constant0-1DP.$(OBJEXT) 60 constant0_1DP_LDADD = $(LDADD) 61 constant0_1ND_SOURCES = constant0-1ND.c 62 constant0_1ND_OBJECTS = constant0-1ND.$(OBJEXT) 63 constant0_1ND_LDADD = $(LDADD) 64 constant0_1NDDP_SOURCES = constant0-1NDDP.c 65 constant0_1NDDP_OBJECTS = constant0-1NDDP.$(OBJEXT) 66 constant0_1NDDP_LDADD = $(LDADD) 57 67 am_fstream_test_OBJECTS = fstream_test.$(OBJEXT) 58 68 fstream_test_OBJECTS = $(am_fstream_test_OBJECTS) … … 85 95 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 86 96 am__v_GEN_0 = @echo " GEN " $@; 87 SOURCES = $(avl_test_SOURCES) $(fstream_test_SOURCES) \ 97 SOURCES = $(avl_test_SOURCES) constant0-1DP.c constant0-1ND.c \ 98 constant0-1NDDP.c $(fstream_test_SOURCES) \ 88 99 $(vector_test_SOURCES) 89 DIST_SOURCES = $(avl_test_SOURCES) $(fstream_test_SOURCES) \ 100 DIST_SOURCES = $(avl_test_SOURCES) constant0-1DP.c constant0-1ND.c \ 101 constant0-1NDDP.c $(fstream_test_SOURCES) \ 90 102 $(vector_test_SOURCES) 91 103 ETAGS = etags … … 285 297 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/avl4.Po@am__quote@ 286 298 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/avl_test.Po@am__quote@ 299 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/constant0-1DP.Po@am__quote@ 300 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/constant0-1ND.Po@am__quote@ 301 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/constant0-1NDDP.Po@am__quote@ 287 302 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstream_test.Po@am__quote@ 288 303 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vector_int.Po@am__quote@ … … 664 679 ${CC} ${BUILD_FLAGS} -XCFA -n ${<} -o ${@} #don't use CFLAGS, this rule is not a real test 665 680 681 constant0-1DP : constant0-1.c 682 ${CC} ${CFLAGS} -DDUPS ${<} -o ${@} 683 684 constant0-1ND : constant0-1.c 685 ${CC} ${CFLAGS} -DNEWDECL ${<} -o ${@} 686 687 constant0-1NDDP : constant0-1.c 688 ${CC} ${CFLAGS} -DNEWDECL -DDUPS ${<} -o ${@} 689 666 690 dtor-early-exit-ERR1: dtor-early-exit.c 667 691 ${CC} ${CFLAGS} -DERR1 ${<} -o ${@}
Note: See TracChangeset
for help on using the changeset viewer.