Просмотр исходного кода

clean up compiler warning transfer of control bypasses initialization

hathach 12 лет назад
Родитель
Сommit
97cce2fa58

+ 4 - 4
demos/device/device_os_none/device_os_none.uvopt

@@ -932,7 +932,7 @@
       <Focus>0</Focus>
       <ColumnNumber>3</ColumnNumber>
       <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>72</TopLine>
+      <TopLine>73</TopLine>
       <CurrentLine>78</CurrentLine>
       <bDave2>0</bDave2>
       <PathWithFileName>..\src\main.c</PathWithFileName>
@@ -1386,10 +1386,10 @@
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <Focus>0</Focus>
-      <ColumnNumber>5</ColumnNumber>
+      <ColumnNumber>0</ColumnNumber>
       <tvExpOptDlg>0</tvExpOptDlg>
-      <TopLine>229</TopLine>
-      <CurrentLine>232</CurrentLine>
+      <TopLine>230</TopLine>
+      <CurrentLine>248</CurrentLine>
       <bDave2>0</bDave2>
       <PathWithFileName>..\..\..\tinyusb\device\usbd.c</PathWithFileName>
       <FilenameWithoutPath>usbd.c</FilenameWithoutPath>

+ 6 - 2
tinyusb/class/cdc_host.c

@@ -156,6 +156,7 @@ void cdch_init(void)
 tusb_error_t cdch_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t const *p_interface_desc, uint16_t *p_length)
 {
   OSAL_SUBTASK_BEGIN
+  // TODO change following assert to subtask_assert
 
   if ( CDC_COMM_SUBCLASS_ABSTRACT_CONTROL_MODEL != p_interface_desc->bInterfaceSubClass) return TUSB_ERROR_CDC_UNSUPPORTED_SUBCLASS;
 
@@ -165,8 +166,11 @@ tusb_error_t cdch_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t con
     return TUSB_ERROR_CDC_UNSUPPORTED_PROTOCOL;
   }
 
-  uint8_t const * p_desc = descriptor_next ( (uint8_t const *) p_interface_desc );
-  cdch_data_t * p_cdc = &cdch_data[dev_addr-1]; // non-static variable cannot be used after OS service call
+  uint8_t const * p_desc;
+  cdch_data_t * p_cdc;
+
+  p_desc = descriptor_next ( (uint8_t const *) p_interface_desc );
+  p_cdc  = &cdch_data[dev_addr-1]; // non-static variable cannot be used after OS service call
 
   p_cdc->interface_number   = p_interface_desc->bInterfaceNumber;
   p_cdc->interface_protocol = p_interface_desc->bInterfaceProtocol; // TODO 0xff is consider as rndis candidate, other is virtual Com

+ 3 - 1
tinyusb/class/msc_host.c

@@ -306,7 +306,9 @@ tusb_error_t msch_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t con
   }
 
   //------------- Open Data Pipe -------------//
-  tusb_descriptor_endpoint_t const *p_endpoint = (tusb_descriptor_endpoint_t const *) descriptor_next( (uint8_t const*) p_interface_desc );
+  tusb_descriptor_endpoint_t const *p_endpoint;
+  p_endpoint = (tusb_descriptor_endpoint_t const *) descriptor_next( (uint8_t const*) p_interface_desc );
+
   for(uint32_t i=0; i<2; i++)
   {
     SUBTASK_ASSERT(TUSB_DESC_TYPE_ENDPOINT == p_endpoint->bDescriptorType);

+ 9 - 7
tinyusb/host/hub.c

@@ -95,10 +95,10 @@ tusb_error_t hub_port_clear_feature_subtask(uint8_t hub_addr, uint8_t hub_port,
   SUBTASK_ASSERT_STATUS( error );
 
   //------------- Check if feature is cleared -------------//
-  { // suppres compiler warning transfer of control bypasses initialization
-  hub_port_status_response_t * p_port_status = (hub_port_status_response_t *) hub_enum_buffer;
+  hub_port_status_response_t * p_port_status;
+  p_port_status = (hub_port_status_response_t *) hub_enum_buffer;
+
   SUBTASK_ASSERT( !BIT_TEST_(p_port_status->status_change.value, feature-16)  );
-  }
 
   OSAL_SUBTASK_END
 }
@@ -129,11 +129,11 @@ tusb_error_t hub_port_reset_subtask(uint8_t hub_addr, uint8_t hub_port)
   );
   SUBTASK_ASSERT_STATUS( error );
 
-  { // suppres compiler warning transfer of control bypasses initialization
-  hub_port_status_response_t * p_port_status = (hub_port_status_response_t *) hub_enum_buffer;
+  hub_port_status_response_t * p_port_status;
+  p_port_status = (hub_port_status_response_t *) hub_enum_buffer;
+
   SUBTASK_ASSERT ( p_port_status->status_change.reset && p_port_status->status_current.connect_status &&
                    p_port_status->status_current.port_power && p_port_status->status_current.port_enable);
-  }
 
   OSAL_SUBTASK_END
 }
@@ -165,7 +165,9 @@ tusb_error_t hub_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t cons
   if ( p_interface_desc->bInterfaceProtocol > 1 ) return TUSB_ERROR_HUB_FEATURE_NOT_SUPPORTED;
 
   //------------- Open Interrupt Status Pipe -------------//
-  tusb_descriptor_endpoint_t const *p_endpoint = (tusb_descriptor_endpoint_t const *) descriptor_next( (uint8_t const*) p_interface_desc );
+  tusb_descriptor_endpoint_t const *p_endpoint;
+  p_endpoint = (tusb_descriptor_endpoint_t const *) descriptor_next( (uint8_t const*) p_interface_desc );
+  
   SUBTASK_ASSERT(TUSB_DESC_TYPE_ENDPOINT == p_endpoint->bDescriptorType);
   SUBTASK_ASSERT(TUSB_XFER_INTERRUPT == p_endpoint->bmAttributes.xfer);